如何防止 UINavigationController 更改 pushViewController 上的后退按钮:
Posted
技术标签:
【中文标题】如何防止 UINavigationController 更改 pushViewController 上的后退按钮:【英文标题】:How to prevent UINavigationController from changing back button on pushViewController: 【发布时间】:2014-08-14 14:16:56 【问题描述】:是否可以防止 UINavigationController 在推送视图控制器时更改 backBarButtonItem?我在后退按钮位置设置了一个自定义图像,我希望将其保留在那里。 (我正在制作应用程序抽屉/汉堡菜单)
我已尝试使用以下代码,但它并没有改回来
UIBarButtonItem *barButtonItem = [[centerViewController navigationItem] backBarButtonItem];
[navigationController pushViewController:leftViewController animated:false completion:^
[[centerViewController navigationItem] setBackBarButtonItem:barButtonItem];
【问题讨论】:
每次按下视图控制器时,您都必须将后退按钮项目的图像重置为汉堡图标 【参考方案1】:假设您从 View1 推送 View2,那么在 View1 的加载方法上确实设置了一个像这样的自定义后退按钮
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithImage: [UIImage imageNamed:@"yourImage.png"]
style: UIBarButtonItemStyleBordered
target: nil action: nil];
[self.navigationItem setBackBarButtonItem: backButton];
【讨论】:
【参考方案2】:在推送新控制器之前设置 backBarButtonItem。
在新推送的 ViewController 中显示没有文字的 backBarButton 的后退箭头的示例:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@""
style:UIBarButtonItemStylePlain
target:nil
action:nil];
[self.navigationController pushViewController:newVC animated:YES];
【讨论】:
以上是关于如何防止 UINavigationController 更改 pushViewController 上的后退按钮:的主要内容,如果未能解决你的问题,请参考以下文章