我实现了以下代码,以显示带有backbuttonbaritem的导航栏。
[mapNavigationItem setTitle:@"Tracking"];
[mapNavigationItem setRightBarButtonItem:nil];
[mapNavigationItem setLeftBarButtonItem:nil];
UIBarButtonItem *stopTrackingBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Stop Tracking" style:UIBarButtonItemStylePlain target:nil action:@selector(stopTracking)];
[mapNavigationItem setBackBarButtonItem:stopTrackingBarButton];
[mapNavigationBar pushNavigationItem:mapNavigationItem animated:NO];
[stopTrackingBarButton release];
屏幕上显示stopTracking按钮,但不显示标题。当我点击stopTracking按钮时,它会消失,然后显示标题。 有人可以告诉我发生了什么吗?
好吧我觉得我不够清楚,
我在标签栏中有一个带有按钮的mapview,当应用程序启动导航栏显示2个按钮时,当我点击其中一个标签栏项目时,它应该清除导航栏按钮并添加一个后退按钮栏按钮仅限项目。我成功到了这个阶段。 但是当我点击BackBar按钮项时,它会消失,并且不会执行分配给它的动作。
仅供参考:
IBOutlet UINavigationBar *mapNavigationBar;
IBOutlet UINavigationItem *mapNavigationItem;
答案 0 :(得分:0)
如果您想为后退按钮使用与上一个导航标题不同的标题,则需要在推送新视图控制器之前更改它,并在弹出后再将其更改回来。
类似于:
self.navigationItem.title = @"Stop Tracking";
[self.navigationController pushViewController:mapNavigationItem animated:NO];
并在此课程的viewWillAppear
中self.navigationItem.title = @"Tracking";
编辑:
如果您没有使用后退按钮来取回导航控制器,则不要将其设置为backBarButton,只需将其设置为左侧barButton项。
此外,您似乎也在为两个标签使用相同的导航栏。不是个好主意。从不同的viewcontrollers加载选项卡视图,并为这些视图添加两个不同的导航栏。