【问题标题】:UINavigationBar Back button with no text, everUINavigationBar 没有文字的后退按钮,永远
【发布时间】:2013-10-16 16:00:29
【问题描述】:

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

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

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

【问题讨论】:

  • 这是苹果提供的默认操作,我想你需要去自定义按钮。

标签: cocoa-touch uinavigationbar


【解决方案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;

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 关于苹果的有趣点,将传递给设计师。如果我能说服他们放弃解决它的要求:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2023-04-01
    • 1970-01-01
    • 2011-01-04
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多