我希望我的应用看起来像下图。
我正在使用PageMenu来完成此结果。数据来自Web API的fetcehd。我想根据Web API响应的天数动态创建视图控制器,这样每天都可以有一个视图控制器,以便它可以显示当天的时间表。我怎么能做到这一点?
答案 0 :(得分:1)
只需创建一个循环,多次添加相同的控制器。我创建了addPageMenu
函数。收到回复时请打电话。
func addPageMenu(count: Int) {
var controllerArray : [UIViewController] = []
for i in count {
var controller : UIViewController = UIViewController(nibName: "controllerNibName", bundle: nil)
if i == 0 {
controller.title = "SUNDAY"
} else if i == 1 {
controller.title = "MONDAY"
}...
controllerArray.append(controller)
}
let pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
// Lastly add page menu as subview of base view controller view
// or use pageMenu controller in you view hierachy as desired
self.view.addSubview(pageMenu!.view)
}
答案 1 :(得分:1)
从您自己提供的链接中读取它:
// Array to keep track of controllers in page menu
var controllerArray : [UIViewController] = []
// Create variables for all view controllers you want to put in the
// page menu, initialize them, and add each to the controller array.
// (Can be any UIViewController subclass)
// Make sure the title property of all view controllers is set
// Example:
var controller : UIViewController = UIViewController(nibName: "controllerNibName", bundle: nil)
controller.title = "SAMPLE TITLE"
controllerArray.append(controller)
所以你需要做的是:拥有一个返回[dailyModel]
的函数。
您的dailyModel看起来像这样:
struct dailyModel {
let programStartingTime : String // 6:45
let item : [item] // [(Maghrib & Isha Prayer, 20, 0),(Ziarat-e-Ashura, 20, 1), ...otherItems...]
}
struct item{
let duration : Int? //minutes
let name : String // Maghrib and Isha prayers
let row : Int? // 0
}
然后循环浏览dailyModel
并使用其参数实例化& 填充 viewcontroller,然后按照教程的操作, append
。
这不是最好的代码,但我希望你明白这一点。