如何将选项卡栏控制器添加到拆分视图控制器应用程序的根视图中

时间:2012-05-08 06:31:24

标签: iphone objective-c uisplitviewcontroller ipad

enter image description here

我对iPad UISplitViewController非常陌生。

我需要在主视图/左视图的底部添加一个包含3个标签的标签栏。我为3个选项卡中的每个选项卡都有一个不同的View Controller。我还没有找到在基于拆分视图的应用程序中使用Tab标签的任何其他示例。

在哪里插入标签栏控制器以显示在根视图的底部?

如何建立连接,以便在选择表格单元格时,详细信息视图中会显示detailItem信息?标签栏已添加到IB中的根视图中。我应该以编程方式添加它吗?

3 个答案:

答案 0 :(得分:3)

在您的app委托中添加tabbar控制器,然后将视图控制器添加到tabbar控制器并将窗口rootview控制器设置为tabbar controller。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
 self.tabbar=[[UITabBarController alloc] init];

   self.vc1 = [[vc1 alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
   // do the same to other VCs
    self.tabbar.viewControllers=[NSArray arrayWithObjects:vc1,vc2,vc3,vc4, nil];


self.window.rootViewController = self.tabbar;

[self.window makeKeyAndVisible];
return YES;

}

我希望它有所帮助: - )

答案 1 :(得分:1)

你必须动态地使用UITabBarController。

在.h文件中

UITabBarController * tabBar;

<。>文件中的

在appDidFinish启动

中为您的类创建对象

例如你有

Class1和Class2

appDidFinishLaunch中的

Class1 * obj1 = [Class1 alloc] initWithNibName:@“Class1”bundle:nil]; ** Class2 obj2 = [Class2 alloc] initWithNibName:@“Class2”bundle:nil]; *

//默认情况下,主导航控制器附带模板代码

//现在你已经为tabBar

创建了数组

NSArray * tabViewArray = [[NSArray alloc] initWithObjects:obj1,obj2,masterNavigationController,nil];

tabBar = [[UITabBarController alloc] init];

[tabBar setViewControllers:tabViewArray];

//现在你必须编辑包含splitview.viewArray repalce masterNavigataionControler with tabBar的语句

self.splitViewController.viewControllers = [NSArray arrayWithObjects:tabBar,detailNavigationController,nil];

试试这个我希望它能帮到你。

答案 2 :(得分:0)

你所要做的就是将uispliviewcontroller的第一个参数初始化为tabbar而不是视图,或者你可以使用uisegmentedcontrol。