BackButtonBarItem在iphone中无法正常工作

时间:2011-07-29 08:39:17

标签: ios4 user-interface

我实现了以下代码,以显示带有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;

1 个答案:

答案 0 :(得分:0)

如果您想为后退按钮使用与上一个导航标题不同的标题,则需要在推送新视图控制器之前更改它,并在弹出后再将其更改回来。

类似于:

self.navigationItem.title = @"Stop Tracking";
[self.navigationController pushViewController:mapNavigationItem animated:NO];

并在此课程的viewWillAppear

self.navigationItem.title = @"Tracking";

编辑:

如果您没有使用后退按钮来取回导航控制器,则不要将其设置为backBarButton,只需将其设置为左侧barButton项。

此外,您似乎也在为两个标签使用相同的导航栏。不是个好主意。从不同的viewcontrollers加载选项卡视图,并为这些视图添加两个不同的导航栏。