2011-05-30 41 views
1

我有一个UINavigationController,我从Level1到Level2,我选择一行/项目;然后我回去使用后退按钮 - 但 - 在我的1级我正在显示一个默认选择(我改变了Level2并选择了其他的东西) - 我的等级1根本没有改变,所以我猜测viewDidLoad不会再次被调用...我如何强制它重新加载?uinavigationcontroller更新之前的视图时弹出

非常感谢

干杯 geebee

EDIT1: 我知道你是对的,但它没有工作 - 我aksing自己,如果它与所有的东西做一下可重复使用细胞,所以它不会重新加载......这可能吗?任何更多的想法

编辑2: 事实上,它没有工作意味着我从didLoad复制了所有的代码(我把它移动到其实),以viewWillAppear - 是正确的事情吗? 或应该试图在正确的地方更新我的nsmutablearray? 谢谢。干杯

编辑3:实际上,在我的代码中添加更多的标志/消息以了解发生了什么,虽然viewWillAppear在重新显示时被调用,但可见单元格没有“重新绘制/刷新”。因此,如果我向下滚动然后向上,神奇的变化正在工作,并出现,但我希望这从一开始就发生。任何想法请帮助。感谢

+0

解决了!谢谢 我添加了一个[self.tableView reloadData];在viewWillAppear方法中! – geebee 2011-06-08 23:49:11

+0

作为@nanshi评论,viewWillAppear没有在iOS4.3中调用,你是如何解决这个问题的? – jAckOdE 2012-08-21 08:59:26

回答

1

你可以把你的更新代码控制器的-viewWillAppear:方法

3

-viewDidLoad一个UIViewController的生命周期中只调用一次。它在请求视图控制器的视图后立即调用,例如通过访问其view属性。因此,在你的情况下,你想把你的重载代码放在-viewWillAppear:。每次显示视图控制器的视图时都会调用此方法。

0

但-viewWillAppear并没有在ios 4.3中调用,它确实在iOS 5.0中调用并且向上调用

相关问题