【问题标题】:viewWillAppear called again and againviewWillAppear 一次又一次地被调用
【发布时间】:2014-08-04 12:35:36
【问题描述】:

苹果在viewWillAppearDocumentation中说

在接收者的视图即将添加之前调用该方法 到视图层次结构并在配置任何动画之前 显示视图。

这句话是什么意思

在配置任何动画以显示视图之前。

我实际上希望在将视图添加到视图层次结构时调用viewWillAppear,但是当我从后台应用程序返回到前台时,当视图控制器已经在查看层次结构。和句子有关系吗

在配置任何动画以显示视图之前。

如果我切换标签或某些modal view controller 从我的视图中消失,也会发生类似的事情。

【问题讨论】:

  • 这是预期的行为。
  • 打开控制中心不算是当前可见的视图控制器正在消失吗?那么这是否意味着当视图变得可见时,该方法将被调用?

标签: ios objective-c uiviewcontroller viewwillappear


【解决方案1】:

最经典和最可靠的方法是viewDidLoad

viewWillAppear/viewWillDisappear 和类似的方法被设计为被多次调用,viewDidLoad - 例如,当视图首次将自身加载到导航堆栈时,仅调用一次。

【讨论】:

  • 是的,我知道他们会调用一次,但究竟是什么“在配置任何动画以显示视图之前”。线是什么意思?
  • @Madu 可能意味着这个方法在VC对用户可见之前被调用,因此没有配置动画来显示它。
  • @Madu 这意味着您放在这里的所有内容都将在视图开始滑动到屏幕上之前完成(如果有动画)。在此处对视图所做的更改将在演示后立即可见。如果您将代码放在 viewDidAppear 中,则这些更改将在 视图已经出现在屏幕上之后可见。
猜你喜欢
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
相关资源
最近更新 更多