TabBarController和SplitViewController

我希望我的splitviewController显示在TabBarController 。 不幸的是,我首先决定只是有一个SplitViewController并select苹果的模板。 现在我处于不方便的位置,不知道如何将其添加到标签栏。

我尝试了几个在StackOverflow中解释过的东西,但最好的结果是在它下面有一个标签栏的黑屏:-(

我只是努力寻找一个很好,简单的方法。

Appdelegate代码:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Add the split view controller's view to the window and display. self.window.rootViewController = self.splitViewController; [self.window makeKeyAndVisible]; NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); documentFolderPath = [searchPaths objectAtIndex: 0]; self.rootViewController.directoryPath = documentFolderPath; NSURL *docUrl = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey]; if ([docUrl isFileURL]) { NSString *path = [docUrl path]; self.detailViewController.currentFilePath = path; [self.detailViewController setDetails:path newFile:FALSE]; } return YES; 

从苹果的文档,这是一个不是没有的情况。

但是有一种方法可以轻松实现(我们是为应用程序做的)。

看看http://www.codeworth.com/blog/mobile/ios-splitviewcontroller-inside-tabviewcontroller/

我认为这将是这个问题的答案。

你应该检查IntelligentSplitViewController是你需要的一切!

添加一些控制器和devise,你可以结束这样的事情:

使用IntelligentSplitViewController的iPad应用程序的屏幕截图

PS :我实际上有一个应用程序在使用这个控制器的应用程序商店,所以去头!

编辑:

我只是意识到你实际上想要在tabbar内的splitview。 每个苹果的文档,这是一个不是。 http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/iPadControllers/iPadControllers.html

分割视图控制器必须始终是您创build的任何界面的根。 换句话说,您必须始终将UISplitViewController对象的视图安装为应用程序窗口的根视图。 然后,您的拆分视图界面的窗格可能包含导航控制器,选项卡栏控制器或您需要实现您的界面的任何其他types的视图控制器。


如果你仍然想使用一个tabbar我写下面的东西仍然适用,但你的子视图不应该是一个分裂控制器。

原来的答案:

您将在代码中创buildTabBar控制器,然后添加SplitView控制器作为其中一个选项卡。 在你的情况下,self.splitViewController将成为你的tabbar控制器内的视图控制器之一。 我没有尝试过使用苹果模板应用程序作为出发点,但给它应该工作。

你可以在uitabbarcontroller上find更多的教程。 这看起来很有前途: http : //www.xcode-tutorials.com/uitabbarcontroller-and-uinavigationcontroller/

这也是方便: http : //developer.apple.com/library/ios/#documentation/UIKit/Reference/UITabBarController_Class/Reference/Reference.html

inheritance人样本:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. UITabBarController *tabBarController = [[UITabBarController alloc] init]; //set tbconroller as root view controller of window [self.window setRootViewController:tabBarController]; //window retains controller so we can release [tabBarController release]; //create two view controllers UIViewController *vc1 = [[HypnosisViewController alloc] init]; UIViewController *vc2 = [[CurrentTimeViewController alloc] init]; //make an array containing these two view controllers NSArray *viewControllers = [NSArray arrayWithObjects:vc1,vc2,nil]; [tabBarController setViewControllers:viewControllers]; //the views are retained their new owners, so we can release [vc1 release]; [vc2 release]; [[self window] makeKeyAndVisible]; return YES; } 

如果您使用的是界面构build器, 请 参阅 http://www.cimgf.com/2009/06/25/uitabbarcontroller-with-uinavigationcontroller-using-interface-builder/或http&#xFF1A://www.mobisoftinfotech .COM /博客/ iphone / iphone-的TabBar-的UITabBarController教程/

我刚刚解决了这个问题,因为它在过去几天一直在我的脑海中运行。 你可以在“UITabbarView”里面有任意多的“分割视图”,反之亦然,不需要使用任何代码,但是如果你想满足苹果的要求,并且使得分割视图控制器是根控制器,你必须input一行的代码。

牛肉就在这里

  1. 创build一个单一的视图项目,或者你喜欢什么。
  2. 在主要情节串联板中拖放拆分视图控制器。
  3. 从“单视图控制器”拖动初始化箭头,并将其指定到“分割视图控制器”。
  4. 现在,如果你运行你的项目,你应该加载分割视图。
  5. 创build“UISplitViewController”的新可口可乐触摸文件子类,随心所欲地调用它。
  6. 在“viewDidLoad”添加以下行“self.preferredDisplayMode = .PrimaryHidden”//只是隐藏主视图
  7. 回到主要故事板select拆分视图控制器,并使其视图控制器,你刚才创build的。
  8. 现在,删除细节视图控制器的“视图”(只是视图)
  9. find对象库中的“容器视图”,将其拖放到详细信息视图控制器中。
  10. 这将生成连接到“容器视图”的视图控制器在“选项卡栏控制器”中embedded生成的视图控制器现在,您已将分离视图连接到选项卡栏控制器。
  11. 您的TabBarController应该有一个视图控制器(项目1),用“ContainerView”replace此控制器的“视图”(唯一的视图)。
  12. 现在从“对象库”中拖放新的分割视图控制器将“项目1”中的“容器视图”连接到新添加的“分割视图控制器”。
  13. 现在,如果你还记得我们应该有一个视图控制器挂在周围,当我们创build单个视图项目,find该控制器连接到标签栏控制器,所以现在你有2个项目。
  14. 重复相同的过程,用“容器视图”replace视图,并添加新的分割视图控制器,并将其连接到这个故事板。

现在,这个最终的Storyboard应该看起来像这样。 同样,你不必从分割视图控制器开始,但我只是为了配合苹果的build议。

在这里输入图像说明

在这里输入图像说明