带详细视图底部的工具栏/ tabbar的UISplitView

问题描述:

因此,我开始使用iPad的标准Split View应用程序。左侧为根视图,右侧为详细视图。细节视图的顶部有一个工具栏。带详细视图底部的工具栏/ tabbar的UISplitView

我想要添加的是一个标签栏到详细视图的底部,并在工具栏tabbar之间的详细信息视图中加载标签。

这里是问题,我添加另一个视图之间加载标签,如果是的话,我怎么得到它调整大小和尊重工具栏和标签栏高度。

清除?

希望有人能指出我正确的方向。例子会很棒,网络上的每个例子似乎都是开箱即用的世界风格。

是的,答案真的很简单。 UITabBarControllers像SplitViewControllers是苹果公司所希望的唯一的根视图控制器,因此你不能在另一个视图中嵌套TabBarController,但是你可以在视图中嵌套一个UITabBar。

我将Tabbar添加到底部的详细信息视图,顶部的导航栏以及它们之间的占位符视图。所有在Interface Builder!中,您都希望使用占位符视图上的autosize切换所有内容。

接下来,实现UITabBarDelegate。为此,您需要:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { 
从,你可以用item.tag如果你给其中每个项目在Interface Builder一个独特的标签会让你知道用户点击该选项卡

。我设置定义的值矿:

#define VIEW_TAB_A 0 
#define VIEW_TAB_B 1 
#define VIEW_TAB_C 2 

然后,那么你将要...好最好的,我只是让你看到

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { 
    [self switchToView:item]; 
} 

- (void) switchToView : (UITabBarItem*) item { 

    if(currentViewController != nil) { 
     [currentViewController viewWillDisappear:NO]; 
     [currentViewController.view removeFromSuperview];    
    } 

    switch(item.tag) { 
     case VIEW_TAB_A: 
      currentViewController = self.viewA; 
      break; 
     case SCAN_VIEW_TAB_B: 
      currentViewController = self.viewB; 
      break; 
     case PROMOTIONS_VIEW_TAB_C: 
      currentViewController = self.viewC; 
      break; 
    } 

    UIView *aView = currentViewController.view; 

    aView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    aView.frame = placeholderView.frame; 

    [currentViewController viewWillAppear:NO]; 

    [self.view insertSubview:aView aboveSubview:placeholderView]; 
    if(currentViewController != nil) { 
     [currentViewController viewDidDisappear:NO]; 
    } 
    [currentViewController viewDidAppear:NO]; 
} 

记住的Alloc的意见(viewA,viewB,viewC)第一在你viewDidLoad和显然释放dealloc。还要注意autoresizingMask!

希望这可以帮助别人。