我希望我的應用看起來像下面的圖像。PageMenu如何動態地(以編程方式)添加視圖控制器?
我正在使用PageMenu來實現這個結果。數據來自Web API的fetcehd。我想根據Web API響應的天數動態創建視圖控制器,以便每天都可以有視圖控制器,以便它可以顯示當天的時間表。我怎樣才能做到這一點?
我希望我的應用看起來像下面的圖像。PageMenu如何動態地(以編程方式)添加視圖控制器?
我正在使用PageMenu來實現這個結果。數據來自Web API的fetcehd。我想根據Web API響應的天數動態創建視圖控制器,以便每天都可以有視圖控制器,以便它可以顯示當天的時間表。我怎樣才能做到這一點?
從鏈接閱讀你提供你自己有:
// 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
和使用它的參數,你實例 & 填充視圖控制器,然後append
他們每個人的教程做的。
這不是最好的代碼,但我希望你明白了。
簡單地創建一個循環添加多個相同的控制器。我創建了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)
}
真棒。謝謝! –
@AliMir或者你的物品可能有**實際時間** ie * 6:15 PM *(而不是持續時間和行),然後排序(使用類似[這個答案](http://stackoverflow.com/a/34800848/5175709))您的'物品'基於時間並列出它們。我沒有使用過日期,但我假設webAPI以字符串格式返回,您稍後必須將其轉換爲NSDate,然後按照字典格式對它們進行排序,如果您的JSON處於一個數組格式,那麼你沒有什麼可擔心的,你可以循環和打印一個項目的時間和名稱...... – Honey