2

我有一个导航控制器应用程序。

我将标签栏推到视图上。标签的工作标题已更改,完美。现在我的一个标签有一个列表,我尝试链接到标签栏中的子页面:

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];

没发生什么事。当然这有效:

self.view = nextController.view;

我希望能够在我的标签栏中推送到此子页面并更改导航栏按钮。这可能吗?

4

3 回答 3

3

听起来您正在将 a 推UITabBarController到 a 上UINavigationController?从Apple 的文档中,您不能将标签栏控制器推送到导航控制器上。

您可能想要做的恰恰相反:拥有一个标签栏控制器,其中UINavigationControllers 作为标签项。这类似于 iPod 应用程序或电话应用程序中的界面。

于 2009-07-29T21:28:15.240 回答
0

我同意 Alex 的观点——导航控制器中的 TabBarController 似乎不是一个好的 UI 模式。

无论如何,回答您的问题:您是否尝试通过标签栏控制器访问导航控制器?

self.tabBarController.navigationController

我不确定这是否有效,但你可以试一试。

于 2009-07-29T22:36:15.933 回答
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];

于 2011-05-08T10:25:59.510 回答