我有一个带有navigationController的UIViewController,我隐藏了后退按钮。这个viewController推送另一个UIViewController,并在这个新的viewController的viewDidLoad中,我这样做:
self.navigationItem.hidesBackButton = FALSE;
但是后退按钮不会发生。为什么?当我转到iOS 4.2的新Xcode版本时,这不起作用,因为在最新版本中,它都运行良好。
答案 0 :(得分:8)
以前的navigationController是否有标题(在导航栏上)?有时,如果没有标题,则会自动隐藏第一个后退按钮。
答案 1 :(得分:3)
如果您正在使用Interface Builder,请检查连接到导航控制器的View Controller中的Navigation Item对象。为清楚起见,在IB中:
导航控制器||东西查看控制器||导航项目
在“属性”选项卡上的“检查器”中,应该有一个名为“后退按钮”的文本字段。确保其中包含“Back”等内容。
在为第一个ViewController列出之后,它将通过堆栈传播。
答案 2 :(得分:2)
嗯,我在运行iOS 4.2时遇到了同样的问题。后退按钮会拒绝出现。在自动驾驶到风景时,它会出现。我的解决方案是执行以下操作 - 这解决了问题...或者我们应该说它是一种解决方法;)
- (void)viewDidLoad
{
[super viewDidLoad];
checkHolder.image = anImage;
self.navigationItem.hidesBackButton = YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.navigationItem.hidesBackButton = NO;
}
答案 3 :(得分:1)
我倾向于同意Syoleen,应该将一个标题文本设置为navigationController,如果你不希望它显示,你可以将标题设置为@“”(即中间的空间)仍然活跃。