2012-01-12 47 views
0

我的UIViewController在我的rootViewController上调用一个函数,然后调用popToRootViewControllerAnimated将视图返回给rootController。这一切正常 - 太棒了!popToRootViewControllerAnimated不修改附加导航项

不幸的是,UINavigationItem(顶部的工具栏)似乎显示了刚刚被删除的rootViewController和UIViewController的mashup。

我需要做什么?我做错了什么?

+0

你添加任何自定义项目在顶部导航栏? – Kekoa 2012-01-12 22:10:13

+0

rootViewController在viewDidLoad上添加了一个uisegctedcontrol。如果我在子视图上使用正常的“后退”按钮,它工作正常。我可以以编程方式触发此按钮吗? – Chris 2012-01-12 22:13:08

回答

1

导航栏不记得对其进行的更改,因此当您推新控制器时,导航栏会被更改为新视图控制器的标题,但它不会存储那里的内容为先前的视图控制器。

每当您回到具有自定义项目的视图控制器时,您都需要重新创建工具栏中的项目。

您可以在viewWillAppear而不是viewDidLoad上做到这一点。我无法完全记得,但是您应该在导航工具栏上重新创建自定义控件,因为在推送新视图控制器时它不会被保留。

+0

感谢您的答复 - 我试过这个,但没有奏效。通用的“返回”按钮实现如何工作。我不能手动触发这个吗? – Chris 2012-01-12 22:26:04

+0

后退按钮只是做一个'-popViewControllerAnimated:',看起来就像你找到它。 – Kekoa 2012-01-13 22:22:09

0

看来,从rootViewController调用popToRootViewController混淆了事情。为了改善这种情况我称之为从内以下调用的UIViewController

[self.navigationController popViewControllerAnimated:YES];