iOS:拆分视图控制器主控中的子视图控制器无法获得viewWillAppear回调

时间:2017-08-28 10:47:16

标签: ios swift viewcontroller uisplitviewcontroller

我使用XCodes的Master-Detail应用程序模板创建了一个示例应用程序。我正在尝试将child view controller添加到master的{​​{1}}。

通过关注Apple's guideline on View Controller containment,我写了以下设置:

Split View Controller

func embedChildViewController(child: UIViewController) { addChildViewController(child) child.view.frame = self.view.frame self.view.addSubview(child.view) child.didMove(toParentViewController: self) } 上运行时,iPad的视图已成功添加到视图层次结构中,并且调用了孩子的child,但viewDidLoad方法不是。只有在以这种方式使用viewWillAppear时才能观察到这种行为。

当我在调用Split View Controller之前添加child's view作为子视图时,一切都按预期工作 - 视图生命周期回调按预期执行。

addChildViewController

我在这里缺少什么 - 为什么在第一个例子中没有调用func embedChildViewController(child: UIViewController) { child.view.frame = self.view.frame self.view.addSubview(child.view) addChildViewController(child) child.didMove(toParentViewController: self) } 方法?

编辑:

经过进一步调查,我注意到忽略对viewWillAppear的调用导致孩子的addChildViewController(child)被调用?

0 个答案:

没有答案