1

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

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

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

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

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

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

4

2 回答 2

0

我不是 100% 确定是否允许这样做.. 因为您已经有一个 tabBarController 作为 rootViewController,并且您又删除了一个 tabBarController 作为第一个选项卡控制器,选项卡将重叠,考虑到您在 iPhone 上拥有的空间量,这是有意义的不允许 tabViewController 在另一个里面

于 2012-04-11T18:30:33.677 回答
0

首先,您需要为您的视图控制器分配您的 nib:

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

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

UITabBarController *controller = [[UITabBarController alloc] initWithNibName:@"YourNibName" bundle:nil];
于 2012-04-11T18:30:51.307 回答