簡體   English   中英

performSegueWithIdentifier在其他ViewController中不起作用

[英]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尚未添加到屏幕上。

所以,我不會那樣做。 我想做的就是顯示以下內容:

  1. 從當前控制器創建self.performSegueWithIdentifier ,只需在代碼中執行以下操作: self.performSegueWithIdentifier
  2. 實例化哎這樣的控制器: instantiateViewControllerWithIdentifier ,然后就做self.presentViewController

因此,要過渡到新控制器,您必須從當前控制器開始。

如果我正確理解您的ViewController層次結構...

因為包含觸發segue的按鈕的viewcontroller是在故事板中具有segue設置的viewcontroller的childviewcontroller,所以我認為您必須調用presentingViewController?.performSegueWithIdentifier("showNewDate", sender: self)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM