为什么Apple建议我们不要调用viewWillLoad、viewWillAppear、viewDidDisappear等?
Why does Apple recommend us to not invoke viewWillLoad, viewWillAppear, viewDidDisappear, etc.?
我正在学习一本书中的练习,我们正在以编程方式构建视图控制器并创建单元测试。这本书也说了这一点,根据以前阅读 Apple 参考文档的经验,Apple 参考文献总是说不要直接调用 viewDidLoad、viewWillAppear、viewDidDisappear 等。我很想知道为什么会这样,如果我们这样做会发生什么?
viewDidLoad
、viewWillAppear
、viewDidDisappear
等是运行时让您知道某些重要事情正在发生的方式:
viewDidLoad
, view controller刚刚获取到它的view
viewWillAppear
,view controller的view即将放入界面
viewDidDisappear
,视图控制器的视图即将从界面中移除
这些是运行时负责的事件,它会向您发送消息让您知道它们正在发生,以便您可以根据需要在适当的时候做出响应。
你打电话给他们是没有意义的,因为你不知道这些事情什么时候发生(除非运行时调用它们)!如果你在某个任意时刻给他们打电话,你就是在撒谎,例如说视图刚刚加载,而实际上它 而不是 刚刚加载,因此您会破坏自己的代码或更糟。
我正在学习一本书中的练习,我们正在以编程方式构建视图控制器并创建单元测试。这本书也说了这一点,根据以前阅读 Apple 参考文档的经验,Apple 参考文献总是说不要直接调用 viewDidLoad、viewWillAppear、viewDidDisappear 等。我很想知道为什么会这样,如果我们这样做会发生什么?
viewDidLoad
、viewWillAppear
、viewDidDisappear
等是运行时让您知道某些重要事情正在发生的方式:
viewDidLoad
, view controller刚刚获取到它的viewviewWillAppear
,view controller的view即将放入界面viewDidDisappear
,视图控制器的视图即将从界面中移除
这些是运行时负责的事件,它会向您发送消息让您知道它们正在发生,以便您可以根据需要在适当的时候做出响应。
你打电话给他们是没有意义的,因为你不知道这些事情什么时候发生(除非运行时调用它们)!如果你在某个任意时刻给他们打电话,你就是在撒谎,例如说视图刚刚加载,而实际上它 而不是 刚刚加载,因此您会破坏自己的代码或更糟。