Tabbar无法访问Navigationcontroller
-
05-07-2019 - |
题
我有一个navigationController应用程序。
我将一个标签栏推到视图上。标签正在改变工作标题,完美。现在我的一个标签有一个列表,我尝试链接到标签栏中的子页面:
NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];
什么都没发生。这课程有效:
self.view = nextController.view;
我希望能够在我的标签栏中推送到此子页面并更改导航栏按钮。这可能吗?
解决方案
听起来你正在将 UITabBarController
推送到 UINavigationController
?来自 Apple的文档,您无法将标签栏控制器推到导航控制器上。
您可能想要做的是相反的:使用带有 UINavigationController
的标签栏控制器作为标签项。这类似于iPod应用程序或手机应用程序中的界面。
其他提示
我同意Alex - 导航控制器中的TabBarController似乎不是一个很好的UI模式。
无论如何,要回答您的问题:您是否尝试通过标签栏控制器访问导航控制器?
self.tabBarController.navigationController
我不确定这是否有效,但你可以尝试一下。
我想我找到了一个简单的解决方案。
在您想要推送视图的类中,将本地 UINavigationController
声明为propterty:
@interface userMenu : UIViewController {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;
记得合成它。
在
NSArray *viewControllersArray = [self.tabBarController viewControllers];
userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;
之后你可以做 [self.navigationController pushViewController:nextController animated:YES];
不隶属于 StackOverflow