如果我们正在实现一个页面控件,以便我们在滚动视图上添加小控制器。虽然将控制器的视图添加为子视图不是一个好习惯,但如果这是实现,那么在滚动视图上添加控制器的视图作为子视图时,是否应该调用 viewWillAppear 方法?根据当前的实现,我们最初加载 4 个页面。此时, vieWillAppear 不会被调用,但是当滚动滚动视图时加载其他页面时,会调用 viewWillAppear。
请分享您的意见。
如果我们正在实现一个页面控件,以便我们在滚动视图上添加小控制器。虽然将控制器的视图添加为子视图不是一个好习惯,但如果这是实现,那么在滚动视图上添加控制器的视图作为子视图时,是否应该调用 viewWillAppear 方法?根据当前的实现,我们最初加载 4 个页面。此时, vieWillAppear 不会被调用,但是当滚动滚动视图时加载其他页面时,会调用 viewWillAppear。
请分享您的意见。
视图将出现:-在接收者的视图即将添加到视图层次结构之前以及为显示视图配置任何动画之前调用此方法。您可以覆盖此方法以执行与显示视图相关的自定义任务。例如,您可以使用此方法更改状态栏的方向或样式,以与正在呈现的视图的方向或样式相协调。如果你重写了这个方法,你必须在你的实现中调用 super 。
ViewDidLoad :在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从 nib 文件加载还是在 loadView 方法中以编程方式创建,都会调用此方法。您通常覆盖此方法以对从 nib 文件加载的视图执行额外的初始化。
还有一件事,如果您先阅读文档,那对您来说会很棒。
这正是为什么将 aUIViewController
的视图添加为子视图是一个坏主意的原因。viewWillAppear
像,viewDidAppear
和viewWillDisappear
之类的回调方法viewDidDisappear
可能会或可能不会被调用,非常不可预测。如果你走这条路,你肯定会遇到问题。从这个详尽的答案中了解更多信息。
您应该在这种情况下使用UIViewController
遏制。查看可用的 WWDC 视频:Implementing UIViewController Containment。您可能需要登录才能观看(建议在 Safari 浏览器上观看)。
另外,您检查过PageControl 示例代码吗?可能对您的情况有所帮助。它使用视图控制器包含。
希望有帮助!