后退按钮不会出现在navigationController中

时间:2010-11-25 21:47:29

标签: iphone objective-c

我有一个带有navigationController的UIViewController,我隐藏了后退按钮。这个viewController推送另一个UIViewController,并在这个新的viewController的viewDidLoad中,我这样做:

self.navigationItem.hidesBackButton = FALSE;

但是后退按钮不会发生。为什么?当我转到iOS 4.2的新Xcode版本时,这不起作用,因为在最新版本中,它都运行良好。

4 个答案:

答案 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,如果你不希望它显示,你可以将标题设置为@“”(即中间的空间)仍然活跃。