1

我正在尝试在标签栏控制器中添加两个视图。像这样..

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIViewController *con_view_ctrlr = [[ofi_vc_blocked_list alloc] initWithNibName:@"ofi_vc_blocked_list" bundle:nil];   // This is adding fine.
    UINavigationController *con_view_navig = [[UINavigationController alloc] initWithRootViewController:con_view_ctrlr];

    UIViewController *ab = [[ofi_vc_address_book alloc] initWithNibName:@"ofi_vc_address_book" bundle:nil];
    UINavigationController *ab_navig = [[UINavigationController alloc] initWithRootViewController:ab];

    ab_tab_bar = [[UITabBarController alloc] init];
    ab_tab_bar.viewControllers = [NSArray arrayWithObjects:ab_navig, con_view_navig, nil];
}

我还没有呈现标签栏。因为我不希望标签栏最初显示。

我希望 ofi_vc_address_book 视图* (作为标签栏的一部分添加) *最初显示为另一个视图的一部分。我只在特定情况下需要那个标签栏。当我的情况出现时,我想展示ModalViewController ab_navig(ofi_vc_address_book) 与标签栏以及我之前添加的其他视图一起显示。但是我无法通过不一致的层次结构来实现它的崩溃。如何在标签栏中和其他视图的子视图中使用相同的视图?可能吗?

4

3 回答 3

0

presentModalViewController ab_tab_bar 而不是 ab_navig 如果你想展示一个带有导航视图的标签栏视图。

于 2012-08-10T05:45:33.590 回答
0

您不能将同一个视图关联到多个视图控制器。这样做的方法是复制 IB 中的视图并将其连接到第二个视图控制器,或者在代码中创建视图的另一个实例并将其设置在视图控制器上。

于 2012-08-10T05:40:08.883 回答
0

标签栏控制器必须是根视图控制器。没有办法以另一种方式使用标签栏视图控制器。我只为您看到一种方式 - 在不需要标签栏的视图控制器中,您可以隐藏它。但更好的方法是查看您的应用架构。我相信你可以找到另一种更好的方法来实现你想要的。

于 2012-08-10T08:01:24.843 回答