由openURLAction导航的Three20;推送VC中的self.navigationController是零?

时间:2010-09-15 07:18:10

标签: iphone uinavigationcontroller ios4 three20

导航从一个UIviewController控制器开始[[TTNavigator navigator] openURLAction:theUrl];,另一个UIViewController是该URL的目标。使用以下代码设置地图,毫无疑问导航会到达正确的位置:

TTURLMap* map = navigator.URLMap;
[map from:@"tt://goToMyViewController" toViewController:[MyViewControllerClass class]];

在推动视图控制器中,我想操作后退按钮上的图像,但不想更改标题。它应始终是视图控制器的标题,如果没有设置标题,则将其推到顶部,或者本地化为“返回”。

问题: 在这个推送视图控制器的viewDidLoad我开始

NSArray* viewControllers = self.navigationController.viewControllers;

获取导航堆栈,以便查看相应视图控制器的标题。但是viewControllers是零......

但是,如果我什么也不做,默认后退按钮确实有正确的标题。我想看看leftBarButtonItem和backBarButtonItem标题属性,但那里没有任何意义......

任何人都知道发生了什么,为什么会发生这种情况或如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是其中viewDidLoad做错的地方之一 - 在比较各种视图控制器并发现它们的调用方式没有真正区别之后(但是其他人没有viewControllers这让我感到震惊的是,如果它真的是零,popViewControllerAnimated也不应该工作。我发现viewControllers并非{n},我打电话给popViewControllerAnimated并且从那里开始实验表明我可以获得我在viewWillAppear:中获得的头衔。 因此,viewWillAppear:似乎是一个可靠的触摸地点self.navigationControllerviewDidLoad不是。{/ p>