我有一个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;

记得合成它。

tabBarController :

的类中
NSArray *viewControllersArray = [self.tabBarController viewControllers];

userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;

之后你可以做 [self.navigationController pushViewController:nextController animated:YES];

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top