[英]performSegueWithIdentifier doesn't work in a different ViewController
其中,幾個自定義View Controller以編程方式嵌入到Scroll View中。 在其中一個按鈕中,有一個按鈕,應該觸發一個按鈕以顯示“嘿”屏幕。
然后,我編寫了以下代碼:
@IBAction func addNewDateButtonDidTouched(sender :AnyObject) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let storyboardInit = mainStoryboard.instantiateViewControllerWithIdentifier("mainview")
storyboardInit.performSegueWithIdentifier("showNewDate", sender: self)
}
這個@IBAction
似乎重新加載了初始視圖控制器並執行了segue修正(Xcode不返回任何錯誤)。 但是“嘿”屏幕未顯示,並且其viewDidLoad()
也未加載。
有什么提示嗎?
而不是打電話
storyboardInit.performSegueWithIdentifier("showNewDate", sender: self)
嘗試
self.performSegueWithIdentifier("showNewDate", sender: self)
您代碼中的storyboardInit
將實例化一個具有標識符“ mainview
”的UIViewController
。 但是,當您要求控制器執行檢測時,此UIViewController
尚未添加到屏幕上。
所以,我不會那樣做。 我想做的就是顯示以下內容:
self.performSegueWithIdentifier
,只需在代碼中執行以下操作: self.performSegueWithIdentifier
instantiateViewControllerWithIdentifier
,然后就做self.presentViewController
因此,要過渡到新控制器,您必須從當前控制器開始。
如果我正確理解您的ViewController層次結構...
因為包含觸發segue的按鈕的viewcontroller是在故事板中具有segue設置的viewcontroller的childviewcontroller,所以我認為您必須調用presentingViewController?.performSegueWithIdentifier("showNewDate", sender: self)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.