Swift:如何使滚动视图执行子视图控制器 viewDidLoad

Posted

技术标签:

【中文标题】Swift:如何使滚动视图执行子视图控制器 viewDidLoad【英文标题】:Swift: How to make a scroll view execute child view controllers viewDidLoad 【发布时间】:2016-10-27 15:48:59 【问题描述】:

我有一个主菜单视图控制器,它承载一个包含 4 个不同的子视图控制器的滚动视图,这些子视图控制器是使用 XLPagerTabStrip(实际上是一个标签栏)选择的。每个子控制器的 viewDidLoad 仅在第一次在主菜单中加载一个子视图控制器时执行,但我希望每次加载每个子视图控制器时都执行它。

在主菜单中实例化视图控制器的代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let childOneVC = storyboard.instantiateViewControllerWithIdentifier("childOne")

【问题讨论】:

【参考方案1】:

viewDidLoad 在 UIViewController 的生命周期中只被调用一次,如果你想再次调用它,你将不得不重新初始化控制器,否则你可以使用其他生命周期方法,如 viewWillAppear 或 viewDidAppear,每次控制器的视图出现时都会调用它们在屏幕上。

【讨论】:

以上是关于Swift:如何使滚动视图执行子视图控制器 viewDidLoad的主要内容,如果未能解决你的问题,请参考以下文章

Swift(iOS)将UIImage数组插入子视图?

视图设计问题:如何使滚动视图的子视图填充屏幕?

如何使 xib 子视图与 Swift 中的超级视图交互?

iOS:为啥我的子视图在滚动视图中出现大间距

在视图控制器/页面视图控制器中使图像视图全屏显示(swift)

IOS:使整个视图可滚动,而不仅仅是子视图