簡體   English   中英

如何知道使用Swift使用哪個segue?

[英]How to know which segue was used using Swift?

我有一個主viewController和一個detailsViewController。 detailsViewController有2個按鈕。 兩個按鈕都是segue回到主控制器,但我想根據使用的segue自定義主viewController。 檢查哪個segue用於到達viewController的最佳方法是什么,以便可以根據具體情況自定義主viewController? - 如果segue1通向主viewController,那么我想隱藏label1。 如果segue2通向主viewController,那么我想隱藏label2。

在主視圖控制器中創建一個變量,類似於

var vcOne : Bool = true

現在在DetailsViewController中

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if segue.identifier == "segue_one"
        {
            let mainVC : MainViewController = segue.destinationViewController as! MainViewController
            secondVC.vcOne = true


        }
        else if segue.identifier == "segue_two"
        {
           let mainVC : MainViewController = segue.destinationViewController as! MainViewController
            secondVC.vcOne = false
        }

    }

現在在MainView控制器中

     override func viewWillAppear(animated: Bool) {
             super.viewWillAppear(animated)

             //Now check here for which segue
            if(vcOne)
           {
            // implement for button one click

            }
           else
           {
              // implement for button two click 

           }


        }

希望它能幫到你

我會做些什么來檢查使用了哪個segue。 您必須在故事板中為segue設置標識符!

    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "yourIdentifier" {
        let yourVC = segue.destinationViewController as? yourViewController
        //do magic with your destination
    }
}

可以選擇為segue設置標識符。 這應該是唯一標識符。 這樣您就可以識別哪個segue被激活了。 例如:

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "Identifier1" {
        let firstVC = segue.destinationViewController as? FirstViewController

    } else if segue.identifier == "Identifier2" {
        let secondVC = segue.destinationViewController as? SecondViewController

    }
}

暫無
暫無

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

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