假設我在Main.storyboard中有三個視圖控制器。三個中的兩個,vc_login
和vc_studyDesc
使用具有「模態存在」選項的UIButton加載其他視圖控制器。如何以編程方式加載數據到下一個視圖控制器?
另一個vc_signup
有一個UIButton,它可能會返回到前一個控制器。爲了實現這一點,我使用了以下方法:
vc_studyDesc
的標識符爲studyDesc
;我讓它通過它的標識符vc_signup
。以相同的方式,vc_login
具有login
作爲標識符。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if sender as! UIButton == qnaSignUp {
let signup = segue.destinationViewController as! vc_signup
signup.latestVC = "studyDesc"}}
這一個是在UIViewController
類vc_signup
。通過參考字符串latestVC
,該方法確定哪個VC繼續前進。
@IBAction func backBtnClick(sender: UIButton) {
print("latestVS: \(latestVC)")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier(latestVC)
vc.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve
print("check check")
self.presentViewController(vc, animated: true, completion: nil)}
我的問題是,當vc_studyDesc
由vc_signup
稱爲應用程序被終止。我發現這是因爲我錯過了一個必須在vc_signup
中加載的重要變量。
vc_studyDesc
有一些數據在加載時從Firebase引用。我是通過加載一個變量postID
從之前的vc到vc_studyDesc
;這是vc_list
。
所以我剛剛使用NSUserdefaults.standardUserDefaults()
保存了postID
。它解決了,但我想知道是否有任何方法可以使用我在vc_signup
中使用的方式傳遞數據。
據我所知,我找不到任何方式將數據傳入vc_studyDesc.swift
;因爲vc是通過它的標識符來選擇的。
我可以按照我想要的方式傳遞我想要的變量嗎?添加標籤將不勝感激!