在呈现模态视图控制器后,将BarButtons添加到UINavigationBar

时间:2010-04-02 21:37:02

标签: iphone uinavigationcontroller

我正在使用实用程序应用程序的模板。在FlipSideViewController中,我为UINavigationController,navController添加了一个IBOutlet。在代码中,我添加了navController就好了。 rootViewController完美加载:

navController.viewControllers = [[NSArray arrayWithObject:rootViewController] retain];
[self.view addSubview:navController.view];

我改变了navController的颜色就好了:

navController.navigationBar.tintColor = [UIColor colorWithRed:0.6 green:0.75 blue:0.6 alpha:1.0];
navController.navigationBar.translucent = NO;

我创建了一个按钮(注意:“完成”是指解雇modalviewcontroller的IBAction):

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"TEST" style:UIBarButtonItemStyleDone target:self action:@selector(done:)];

我使用该按钮创建一个navItem:

UINavigationItem *backNavItem = [[UINavigationItem alloc] initWithTitle:@"TESTTEST"];
[backNavItem setRightBarButtonItem:backButton animated:YES];

我尝试添加该按钮:

[navController.navigationBar pushNavigationItem:backNavItem animated:YES];

上面的代码惨遭失败。我显然无法向navController添加按钮,因为:

  

***因未捕获的异常而终止应用   'NSInternalInconsistencyException',   理由:'不能打电话   pushNavigationItem:animated:直接   在由a管理的UINavigationBar上   控制器'。

我是否必须创建一个单独的UINavigationBar,它以某种方式连接到我的navController?我尝试过那条路,但没有用。

1 个答案:

答案 0 :(得分:2)

我检查了“NavBar”here

非常了解如何添加按钮。您必须从正在显示的正确ViewController中添加按钮。