切换视图 - UIViewController到UITabBarController

时间:2012-04-11 18:04:24

标签: objective-c xcode

我制作了一个非常简单的基于导航的应用程序(UIViewController)。该视图在Main RootViewController上有一个按钮。

接下来,我做了2个类:TabOneViewController,TabTwoViewController。都好。然后我创建了一个新的Class TabBarViewController。我打开了NIB文件并放在它上面的``UITabBarController上。默认情况下,它在其中创建的两个选项卡分别分配给我的TabOne和TabTwo视图控制器。 强文 然后在我的TabBarViewController中,我为UITabBarController创建了一个IBOutlet,合成了它等等。我通过“文件所有者”在“界面”构建器中将其链接起来。

在RootViewController中,我将按钮链接到我的“pushView”方法,在这个pushView方法中,我有以下代码:

- (IBAction) pushView {
    TabBarViewController *controller = [[TabBarViewController alloc] init];
    [self.navigationController pushViewController:controller animated:YES];
    [controller release];
}

最终结果是它推动视图,但我看不到底部的标签栏,更不用说我添加到控制器的任何页面了。

我做错了什么?为什么我不能在IB中链接它?

2 个答案:

答案 0 :(得分:0)

我不是100%确定是否允许..因为你已经有一个tabBarController作为rootViewController,并且你再删除一个tabBarController作为第一个标签控制器,标签ll重叠,考虑到你的iPhone上的房地产数量,它有意义的是不允许在另一个

中使用tabViewController

答案 1 :(得分:0)

首先,您需要使用笔尖分配视图控制器:

TabBarViewController *controller = [[TabBarViewController alloc] initWithNibName:@"YourNibName" bundle:nil];

其次,在IB中,单击UITabBarController并转到身份检查器,并确保选择自定义类。也就是说,除非你覆盖或添加一些功能,否则根本不需要自定义类,只需直接使用UITabBarController:

UITabBarController *controller = [[UITabBarController alloc] initWithNibName:@"YourNibName" bundle:nil];