私は2つのアクティブ状態に向けられたボタンを最初のVCに持っています。 FirstVC
NOW最初に来たのは誰ですか? IBActionまたはViewDidLoad
@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.")
}
}
}
の
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)
}
2)IBAction
、私はボタンを押すたびに、それは私のために少し問題があるFirstVC
のIBAction
前SecondVC
のviewDidLoad
を呼び出しますアプリ!どのようにしてこれらの2つの機能の優先順位を決めることができますか。
あなたは 'Storyboard'でリンクしましたか?常に最初に呼び出されたviewDidLoadメソッド。それはライフサイクルであるVC – PiyushRathi
*遅延*の主な理由は、 'Alamofire'リクエストの非同期動作です。とにかく、 'UserDefaults'を使用してコントローラ間でデータを渡すことを強くお勧めします。 – vadian
これらの関数が呼び出される順序に注目するべきではありません。あなたはそれを*問題ではない*という順序で書くべきです。 –