【问题标题】:How to add tab bar controllers to the root view of the split view controller application如何将标签栏控制器添加到拆分视图控制器应用程序的根视图
【发布时间】:2012-05-08 06:31:23
【问题描述】:

我是 iPad 的新手UISplitViewController

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

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

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

【问题讨论】:

标签: iphone objective-c uisplitviewcontroller ipad


【解决方案1】:

在您的应用委托中添加标签栏控制器,然后将您的视图控制器添加到标签栏控制器并将窗口根视图控制器设置为标签栏控制器。

- (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;

}

希望对你有帮助:-)

【讨论】:

  • 哦,我以为你想要整个应用程序。但基本上是相同的想法。您可以将视图放在 tabcontroller 中,然后在主控制器中使用 tabcontroller
【解决方案2】:

你必须动态地使用 UITabBarController。

在.h文件中

UITabBarController *tabBar;

在 .m 文件中

在 appDidFinish Launch 中为您的类创建对象

例如你有

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];

试试这个,希望对你有帮助。

【讨论】:

  • 是的,这就是我想要的...标签栏而不是 masterNavigationController
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 2012-07-26
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多