【发布时间】:2019-05-28 20:26:39
【问题描述】:
我有一组 4 个 UIViewController,都有自己的自定义类,并且我设置了委托。到目前为止,我的主视图中有容器视图,这些视图被滚动到屏幕外,这就是我正在做一个“伪页面视图控制器”的方式。但是,为了培训,我想使用 UIPageViewController 将其转换为实际的页面视图控制器。
我看过一堆教程,但大多数人只使用一个视图控制器并更改其中的文本以显示多个。就我而言,我有 4 个自定义视图控制器:
var glanceController: GlanceVC!
var goalsController: GoalsVC!
var commuteController: CommuteVC!
var compareController: CompareVC!
在我之前的伪页面视图控制器上,我这样初始化它们:
func loadVC() {
glanceController = self.storyboard?.instantiateViewController(withIdentifier: "sbGlance") as? GlanceVC
goalsController = self.storyboard?.instantiateViewController(withIdentifier: "sbGoals") as? GoalsVC
commuteController = self.storyboard?.instantiateViewController(withIdentifier: "sbCommute") as? CommuteVC
compareController = self.storyboard?.instantiateViewController(withIdentifier: "sbCompare") as? CompareVC
}
现在据我了解,UIPageViewController 需要一组 UIViewController。但是我不能创建这个数组:
var VCArray: [UIViewController] = [glanceController, goalsController, commuteController, compareController]
错误:无法在属性初始化程序中使用实例成员“glancecontrolleer”。
我尝试改为声明一个空白数组 var VCArray: [UIViewcontroller] = [] 然后在
之后添加func loadVC() {
glanceController = self.storyboard?.instantiateViewController(withIdentifier: "sbGlance") as? GlanceVC
goalsController = self.storyboard?.instantiateViewController(withIdentifier: "sbGoals") as? GoalsVC
commuteController = self.storyboard?.instantiateViewController(withIdentifier: "sbCommute") as? CommuteVC
compareController = self.storyboard?.instantiateViewController(withIdentifier: "sbCompare") as? CompareVC
VCArray += glanceController
}
但是,这也有一个错误:“Argument Type @value glanceVC? 不符合预期的类型“Sequence”。
有人可以帮我为我的 uipageview 制作这个自定义视图控制器数组吗?
【问题讨论】:
标签: ios swift xcode uipageviewcontroller