【发布时间】:2014-10-08 17:15:32
【问题描述】:
在 iOS 7.1 中,我在 viewDidAppear 方法中设置了一个整数变量。一开始它可以工作,但是在导航到另一个视图控制器并导航回来之后,我的整数变量现在设置为零。如果我将整数变量设置移动到 viewDidLoad 它每次都有效。
在 iOS 8 中,它每次都在 viewDidAppear 方法中起作用。
为什么这在 8 中有效,但在 7.1 中无效?
【问题讨论】:
-
您是否进行过任何调试以查看将其设置为零的原因?
-
如果这是一个属性,您可以覆盖访问器并在其中放置一个断点,以查看您的代码何时访问它。当然,这意味着您必须在代码中始终如一地使用点运算符才能使其完全有用。
-
请记住,调用各种 UI 委托方法的确切顺序可能因版本而异(甚至在单个版本中,也因情况而异)。另外,我的理解是 iOS 8 比 7 更频繁地重新创建视图(即重新执行 viewDidLoad),所以如果您的引用不是当前正在显示的视图,那么您不应该依赖 viewDidAppear 中的初始化。跨度>
标签: ios objective-c ios7 ios8 viewdidappear