【发布时间】:2016-05-20 20:10:54
【问题描述】:
我的 pickerview 无法从在同一视图控制器中获取的数组中加载数据。但是如果我将fetchHistory 放在另一个viewController 中(就在historyViewController 之前)并通过导航发送数据,pickerView 会显示confirms 数据。当我将fetchHistory 放入historyViewController 时如何使其工作?或者有什么建议最好的方法是把fetchHistory 放在随机的viewController 中?
historyViewController
var confirms = [DataWaitingConfirm]() //pickerView DataSource
override func viewDidLoad() {
super.viewDidLoad()
fetchHistory()//fetch data from server for 'confirms'
}
fetchData
func fetchHistory(){
let headers = ["Authorization" : "\(TokenType!) \(Token!)"]
Alamofire.request(.GET, "http://xxxx/history/", headers: headers, encoding: .JSON).responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
print(json)
for (results,subJson):(String, JSON) in json["results"] {
print(subJson["status"].int)
if subJson["status"].intValue == 3 {
print("ada 3")
let orderReference = subJson["px_reference"].stringValue
let date = subJson["invoice_date_str"].stringValue
let totalPaid = subJson["total_paid"].stringValue
let orderPicker = "\(orderReference) \(date) \(totalPaid)"
let confirm = DataWaitingConfirm(orderReference: orderReference, pickerConfirm: orderPicker)
self.confirms += [confirm]
}
}}
}
case .Failure(let error):
spinningActivity.hide(true)
print(error)
self.displayAlertMessage("could not fetch history")
}
}
}
pickerview 委托
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let orderToConfirm = confirms[row]
return orderToConfirm.pickerConfirm
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return confirms.count
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
}
【问题讨论】:
标签: ios swift uipickerview datamodel