如何防止UINavigationController更改pushViewController上的后退按钮:

时间:2014-08-14 14:16:57

标签: ios uinavigationcontroller segue uistoryboardsegue

是否可以在推送视图控制器时阻止UINavigationController更改backBarButtonItem?我在后面的按钮位置设置了自定义图像,我希望将其保留在那里。 (我正在制作申请抽屉/汉堡菜单)

我已尝试使用以下代码,但它不会将其更改回来

 UIBarButtonItem *barButtonItem = [[centerViewController navigationItem] backBarButtonItem];

 [navigationController pushViewController:leftViewController animated:false completion:^{

    [[centerViewController navigationItem] setBackBarButtonItem:barButtonItem];
 }

2 个答案:

答案 0 :(得分:2)

假设您正在从View1推送View2然后在视图上执行View1的加载方法设置这样的自定义后退按钮

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                               initWithImage: [UIImage imageNamed:@"yourImage.png"]
                               style: UIBarButtonItemStyleBordered
                               target: nil action: nil];

[self.navigationItem setBackBarButtonItem: backButton];

答案 1 :(得分:0)

在推送新控制器之前设置backBarButtonItem。

示例显示在新推送的ViewController中没有文本的backBarButton的backarrow:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@""
                                                                            style:UIBarButtonItemStylePlain
                                                                           target:nil
                                                                           action:nil];
[self.navigationController pushViewController:newVC animated:YES];