ViewWillAppear何时被调用?

时间:2013-10-17 06:39:28

标签: ios addsubview

如果我们正在实现页面控件,以便我们在scrollview上添加小型控制器。 虽然添加控制器视图作为子视图不是一个好习惯,但如果这是实现,那么,在将滚动视图上的控制器视图添加为子视图时,是否应该调用viewWillAppear方法? 根据当前的实现,我们最初加载4页。 此时,vieWillAppear不会被调用,但在滚动滚动视图时加载其他页面时,会调用viewWillAppear。

请分享您的意见。

2 个答案:

答案 0 :(得分:0)

将显示视图: - 在将接收者的视图添加到视图层次结构之前以及在配置任何动画以显示视图之前调用此方法。您可以覆盖此方法以执行与显示视图相关联的自定义任务。例如,您可以使用此方法更改状态栏的方向或样式,以与所显示视图的方向或样式进行协调。如果重写此方法,则必须在实现中的某个时刻调用super。

ViewDidLoad:在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从nib文件加载还是在loadView方法中以编程方式创建,都会调用此方法。您通常会覆盖此方法以对从nib文件加载的视图执行其他初始化。

有关详细信息,请访问:https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewDidLoad

还有一件事,如果你先阅读文档,对你来说会很棒。

答案 1 :(得分:0)

这正是为什么添加UIViewController视图作为子视图的原因是个坏主意。像viewWillAppearviewDidAppearviewWillDisappearviewDidDisappear这样的回调方法可能会或可能不会被调用,非常难以预测。如果你走这条路你一定会遇到问题。详细了解from this elaborate answer

在这种情况下,您应该使用UIViewController containment。 查看可用于此的WWDC视频:Implementing UIViewController Containment。您可能需要登录才能观看(建议在Safari浏览器上观看)。

另外,你检查过PageControl sample code了吗?可能会对你的情况有所帮助。它使用视图控制器包含。

希望有所帮助!