-5
我在第一個VC上有一個按鈕,它指向兩個活動狀態。 誰先走了? IBAction或ViewDidLoad
2)IBAction
的
1)SecondVC
override func viewDidLoad() {
super.viewDidLoad()
subjectPickerView.dataSource = self
subjectPickerView.delegate = self
SwiftyRequest()
// Used the text from the First View Controller to set the label
}
func SwiftyRequest(){
print("SecondViewController METHOD BEGINS")
let jsonobj = UserDefaults.standard.object(forKey: "PostData")
let json = JSON(jsonobj as Any)
for i in 0 ..< json.count{
let arrayValue = json[i]["name"].stringValue
print(arrayValue)
self.subjects.append(arrayValue)
self.subjectPickerView.reloadAllComponents()
}
print(self.subjects)
}
FirstVC
@IBAction func buttonPressed(_ sender: Any) {
Alamofire.request("http://localhost/AIT/attempt3.php",method: .post, parameters: ["something": semValue, "branch" : streamValue])
.responseJSON { response in
print(response.result)
if let JSON1 = response.result.value {
print("Did receive JSON data: \(JSON1)")
// JSONData.someData = JSON1 as AnyObject?
UserDefaults.standard.set(JSON1, forKey: "PostData")
UserDefaults.standard.synchronize()
}
else {
print("JSON data is nil.")
}
}
}
現在,每當我按下按鈕,它的FirstVC
IBAction
這是有點問題的前調用的SecondVC
的viewDidLoad
我應用程序!我如何確定這兩個函數之間的優先級。
你有沒有鏈接到'Storyboard'?總是首先調用viewDidLoad方法。因爲它是生命週期VC – PiyushRathi
延遲*的主要原因是Alamofire請求的異步行爲。無論如何,強烈建議不要使用'UserDefaults'在控制器之間傳遞數據。 – vadian
您不應該關注這些函數被調用的順序。你應該按照這樣的方式編寫它們*無關緊要*它們被稱爲 –