问题描述
|
我有一个UINavigationController,我从Level1转到Level2,在这里我选择了一个行/项目;然后我使用“后退”按钮-但是-在我的级别1中,我正在显示默认选择(我通过转到“级别2”并选择其他内容进行了更改)-而我的级别1完全没有变化,所以我猜想viewDidLoad不会再次调用...如何强制重新加载?
非常感谢
干杯
吉比
编辑1:
我知道您是对的,但是它不起作用-我在问自己是否与可重复使用的电池有关,因此它不会重新加载...这可能吗?任何更多的想法
编辑2:
实际上,它不起作用意味着我将所有代码(实际上是将它移动了)从didLoad复制到viewWillAppear-这是正确的做法吗?
还是应该尝试在正确的地方更新我的nsmutablearray?
谢谢。干杯
编辑3:实际上,尽管在重新显示时调用了viewWillAppear,但是在我的代码中添加了一些标志/消息来了解发生了什么,但是可见单元格不是“重新绘制/刷新”的。这样,如果我向下滚动然后向上滚动,神奇的是这些更改正在起作用并出现,但我希望这种情况从一开始就发生。任何想法请帮忙。谢谢
解决方法
-viewDidLoad
在UIViewController的生存期内仅被调用一次。在请求视图控制器的视图之后立即调用它,例如通过访问其“ 1”属性。因此,在您的情况下,您要将重装代码放在-viewWillAppear:
中。每次显示视图控制器的视图时都会调用此方法。
, 您可以将更新代码放入控制器的-viewWillAppear:
方法
, 但是-viewWillAppear在ios 4.3中没有调用,它确实在ios 5.0及更高版本中被调用