2010-11-25 161 views
1

我有一个UIViewController,带有navigationController,并隐藏后退按钮。该视图控制器推其他的UIViewController,并在这个新的viewController的viewDidLoad中,我做的:后退按钮不会出现在导航控制器

self.navigationItem.hidesBackButton = FALSE; 

但后退按钮不happear。为什么?当我传递给iOS 4.2的新Xcode版本时,这是行不通的,因为在最新版本中,它一切正常。

+0

您可以发布)的代码使用推视图控制器和b)`viewDidLoad中: `在你的新视图控制器中。 – Fred 2010-11-25 22:48:57

回答

8

是否有前导航控制器(在导航栏上)的标题?有时,如果没有标题,则第一个后退按钮会自动隐藏。

+0

这是“正确”的答案 - iOS 3.x是“buggy”/与后来的iOS版本不一致。在iOS 3.x中,后退按钮是不可见的,但如果您尝试点击它应该在的位置,它实际上会将您带回。这种说,这是一个真正的界面小故障/错误在iOS 3.x ... – Jonny 2011-11-16 05:23:02

1

我倾向于同意Syoleen,应该有一个标题文本设置为导航控制器,您可以将标题设置为@“”(即那里有一个空间),如果你不希望它显示但仍然活跃。

+0

我发现这个伎俩错误的硬性方式。但我不会建议使用它,因为用户失去了iPhone界面的直观性。 – 2010-11-26 00:59:25

3

如果您使用界面生成器,检查连接到导航控制器..为了清楚起见,在IB视图控制器内的导航项目对象:

导航控制器||东西视图控制器||导航项目

在检查器的属性选项卡上,应该有一个名为“后退按钮”的文本字段。确保它有诸如“返回”之类的内容。

在列出第一个ViewController后,它将通过堆栈传播。

+1

您也可以编程设置后退按钮标题。 – 2010-11-30 17:19:58

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; 
} 
+0

我在iOS 4.2中遇到同样的问题,你的破解修正了它。 iOS 4.3到5.0并不需要这个破解。我还没有在iOS上测试少于4.2,所以我不能告诉这个问题是否独占4.2。 – JoJo 2011-10-29 00:53:47

相关问题