0

我在一个项目中要求 UINavigationBar 后退按钮中不应包含文本,它应该始终只是一个左箭头。

默认情况下,iOS 会在其中插入前一个控制器的标题。有什么办法可以阻止整个应用程序发生这种情况?

(我知道我可以逐屏执行此操作,但我正在开发一个包含很多屏幕的现有应用程序,这将是一项艰巨的工作)

4

2 回答 2

1

您始终可以将箭头的图像设置到导航栏的左栏按钮

// ADDING IMAGE TO BUTTON

UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
[refreshButton setFrame:CGRectMake(0,0,30,30)];
[refreshButton setImage:[UIImage imageNamed:@"arrow_image.png"] forState:UIControlStateNormal];
refreshButton.userInteractionEnabled=NO;

// ASSIGNING THE BUTTON WITH IMAGE TO LEFT BAR BUTTON

UIBarButtonItem *refreshBarButton = [[[UIBarButtonItem alloc] initWithCustomView:refreshButton] autorelease];
self.navigationItem.leftBarButtonItem = refreshBarButton;

您必须在每个视图控制器中编写它才能禁用默认的左栏按钮。

于 2013-10-16T16:10:18.930 回答
0

您无法阻止它在整个应用程序中发生,您必须在每个控制器中手动设置它。您可以在 UIViewController 上使用一个类别并在每个控制器中调用该方法,这将使您减少到 1 行代码,如果您更改方法,则无需更改。还是很烂,我知道。此外,如果您这样做,您可能会遇到 Apple 的问题。我们在我们的一个应用程序中尝试过,当我在 WWDC '13 上向 Apple 人员展示时,他们直截了当地告诉我,如果我以这种方式提交应用程序,他们会拒绝该应用程序。YMMV

于 2013-10-16T16:06:16.850 回答