gpt4 book ai didi

ios - awakeFromNib vs Outlets - 当我们调用 awakeFromNib 时设置 outlets 和 segues

转载 作者:行者123 更新时间:2023-11-29 00:59:45 33 4
gpt4 key购买 nike

我试图了解 View Controller 的生命周期,但我读到了一些关于 awakeFromNib 的相互矛盾的陈述。文档说所有 socket 都应该在 awakeFromNib 中设置,但是 I see that it's not always true . awakeFromNibprepareForSegue 之间的调用顺序是什么以及导出何时可用?

最佳答案

您的 View Controller 及其 View 层次结构在运行时从单独的 nib 文件加载。 View 层次结构的导出在加载 View 层次结构之前不会连接,这发生在 View Controller 加载之后。 (我已经对此进行了更深入的解释 in this answer 。)

假设您在导航 Controller 中有一个“主” View Controller 。主视图 Controller 执行 segue 以推送“详细信息” View Controller 。这是事件的顺序:

  1. 详细 View Controller 从其 Nib 加载。如果 Storyboard场景包含其他顶级对象,也会加载这些对象。

  2. 详细 View Controller 接收 awakeFromNib:详细 View Controller 到场景中其他顶级对象的导出已连接,但 View 层次结构的导出未连接。

    <
  3. 主视图 Controller 接收 prepareForSegue,segue 指向详细 View Controller 。

  4. Segue 要求导航 Controller 推送详细信息 View Controller 。

  5. 导航 Controller 向详细 View Controller 请求其 View ,以添加到导航 Controller 的 View 层次结构中。

  6. 详细 View Controller 加载其 View 层次结构 nib。这会将详细 View Controller 的导出连接到它的 View 层次结构。

  7. View 层次结构中的所有对象都收到 awakeFromNib

  8. 详细 View Controller 接收 viewDidLoad

关于ios - awakeFromNib vs Outlets - 当我们调用 awakeFromNib 时设置 outlets 和 segues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37147871/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com