iOS 在 UINavigationController 项中显示箭头后退按钮

Posted

技术标签:

【中文标题】iOS 在 UINavigationController 项中显示箭头后退按钮【英文标题】:iOS Display arrow back button in UINavigationController item 【发布时间】:2011-12-05 18:56:14 【问题描述】:

我想在单击 UINavigationController 项上的后退按钮时收到通知。所以,我创建了一个自定义 UIBarButtonItem

UIBarButtonItem *leftBarButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"SettingsTabTitleKey", @"") style:UIBarButtonItemStyleBordered target:self action:@selector(settingsButtonPushed:)];
    self.navigationItem.leftBarButtonItem = leftBarButton;

但是,显示的按钮是矩形的,不像其他后退按钮那样有箭头。无论如何,我可以显示正确的后退按钮或任何可以找到 .png 的地方吗?

【问题讨论】:

【参考方案1】:

为了保留箭头样式的按钮,我通常这样做:

self.navigationItem.backBarButtonItem = myCustomUIButton;

而不是设置 leftBarButtonItem。

但是,这必须在视图控制器的 viewDidLoad: 方法中完成,该方法将视图控制器推送到您希望按钮出现的位置。所以你在按下下一个视图控制器之前设置后退按钮......

您还可以通过在视图控制器的 viewWillDisappear: 方法中添加一些行为来获得后退按钮被按下的通知。

【讨论】:

如果我将按钮添加到前一个 NavigationControllerItem 的 backBarButtonItem,我是否可以将委托设置为在按钮单击时调用? viewWill Disappear 在 ios 4.3 中不会被调用,但在 iOS 5.0 中会被调用,这就是我无法使用它的原因。

以上是关于iOS 在 UINavigationController 项中显示箭头后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 UINavigationController 中设置自定义导航栏类

在 UINavigationController 中设置自定义导航栏类

在 Swift 2.0 中设置 UINavigationController 栏标题

用动画隐藏导航控制器和标签栏控制器

UINavigationController -> UIViewController -> UIView -> UITableViewController?

功能差异,UINavigationController vs Only Storyboard Segue