在哪里定制UINavigationController后退按钮?

时间:2013-02-05 19:11:31

标签: iphone objective-c cocoa-touch uinavigationcontroller uibarbuttonitem

我可能在这里显而易见,我在一个viewController中,当用户选择“主”屏幕上的按钮时,它已被推到UINavigationController堆栈。

enter image description here

我要做的是到达我可以访问UIBarButtonItem后退按钮(在图像上显示为“Main”)的位置,并调用setBackButtonBackgroundImage:forState:barMetrics:来自定义按钮。

我感到困惑的是,我需要从推送的每个UIViewController执行此操作,还是我需要在UINavigationController本身上执行一次?

我以为我可以使用以下方式从推送的控制器中访问我想要的内容:

UINavigationItem *navItem = [self navigationItem];

但是我觉得我对设置方式感到困惑。

1 个答案:

答案 0 :(得分:2)

可以自定义后退按钮的是控制器消失,例如,你有控制器A推入控制器B.你在控制器B上看到的后退按钮是A的后退按钮。

如果您要自定义应用中的所有按钮,可以继承UINavigationController,确保使用它而不是常规UINavigationController,并使用pushViewController:animated方法进行操作:

controller.navigationItem.backBarButtonItem = ...; // Your custom back button
[super pushViewController...];

修改 您无法访问默认的后退按钮,只能创建一个新的后退按钮。