【问题标题】:NavigationController UINavigationBar Back ButtonNavigationController UINavigationBar 后退按钮
【发布时间】:2023-04-01 06:54:02
【问题描述】:

我正在尝试从 Interface Builder 中更改后退按钮的文本,但是当我选择导航栏并进入属性检查器并将后退按钮文本设置为“关闭”时,它仍然显示为标题之前的观点。

如何让它工作?

【问题讨论】:

    标签: iphone objective-c interface-builder


    【解决方案1】:

    后退按钮将始终显示之前定义的 UIViewController 标题或 backBarButtonItem。

    因此,如果您有“view1”并移至“view2”,则需要在“view1”中设置后退按钮,以便在显示“view2”时正确显示。
    (换句话说,“view1”负责提供应该在指向它的后退按钮中显示的内容)
    这样,如果“view1”后面有任何视图,所有这些视图都将具有正确的后退按钮。

    【讨论】:

    • 我之前可以通过 Interface Builder 设置后退按钮,但它不起作用。
    • 知道了!我能够在视图 1 的 IB 中设置它,它就像你描述的那样工作。我以错误的方式思考它。非常感谢!
    • 第一次很困惑,这不是您所期望的,但是一旦您弄清楚为什么会这样,就会很有意义。
    【解决方案2】:

    在 -(void)viewDidload 中试试这个,因为这个方法是在 nib 加载后触发的:

    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStylePlain target:nil action:nil];
    self.navigationItem.backBarButtonItem = backBarButtonItem;
    [backBarButtonItem release];
    

    【讨论】:

      【解决方案3】:

      一个快速而肮脏的技巧是在视图控制器的 willDisappear 覆盖中将“标题”设置为您想要的按钮名称。确保在 willAppear 覆盖视图控制器上将“标题”设置回正确的名称。这种技术的一个缺点是,在较慢的单位上,您可以看到它发生了变化。在 iPhone 4 及更高版本上几乎不明显。

      希望这会有所帮助。

      【讨论】: