我正在尝试在标签栏控制器中添加两个视图。像这样......
- (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视图* (作为标签栏的一部分添加) * ,最初显示为另一个视图的一部分。我只需要特殊情况下的标签栏。当我的情况到来时,我想要使用标签栏以及我之前添加的其他视图来显示模态视频控件ab_navig(ofi_vc_address_book)。但我无法通过不一致层次结构实现此崩溃。如何在标签栏和其他视图的子项中使用相同的视图?可能吗?
答案 0 :(得分:0)
您无法将同一视图关联到多个视图控制器。执行此操作的方法是复制IB中的视图并将其连接到第二个视图控制器,或者在代码中创建另一个视图实例并将其设置在视图控制器上。
答案 1 :(得分:0)
presentModalViewController ab_tab_bar而不是ab_navig,如果您想要显示带有导航视图的标签栏视图。
答案 2 :(得分:0)
标签栏控制器必须是根视图控制器。没有办法以另一种方式使用标签栏视图控制器。 我只看到一种方式 - 在视图控制器中你不需要标签栏,你可以隐藏它。 但更好的方法是检查您的应用程序架构。我相信你可以找到另一种更好的方法来实现你想要的东西。