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