-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
您不应该关注这些函数被调用的顺序。你应该按照这样的方式编写它们*无关紧要*它们被称为 –