2015-10-18 13 views
3

觸發帶有標識符的(自動)搜索序列使用主屏幕快速操作,我的快速操作可深入鏈接到導航堆棧中的第3個VC。我可以通過下面的方式來到第二個VC,但是我需要觸發另一個performSegueWithIdentifer ...是否有可能,因爲我沒有提及它的參考?如何使用代碼

case ShortCutIdentifier.Second.type: 
       handled = true 

       let storyboard = UIStoryboard(name: "Main", bundle: nil) 
       let navVC = storyboard.instantiateViewControllerWithIdentifier("peopleNavController") as! UINavigationController 
       let peopleTVC = navVC.topViewController as! PeopleTableViewController 
       self.window?.rootViewController?.presentViewController(navVC, animated: true, completion: nil) 

       peopleTVC.performSegueWithIdentifier("showStoresSegue", sender: peopleTVC) 

       //I want to perform segue again here but from what object? 
+0

在第二個設置某種標誌視圖控制器,當第二個視圖控制器剛纔顯示調用第三個視圖控制器根據標誌 –

回答

2

下面是一個示例解決方案,在第一個之後執行第二個segue。

在你的第一個視圖控制器,添加以下內容:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showStoresSegue" { 
     segue.destinationViewController.someSegueShouldHappen = true 
    } 
} 

然後,在你的第二個視圖控制器,添加:

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

    if someSegueShouldHappen { 
     yourSecondViewController.performSegueWithIdentifier(「The Second Segue」, sender: self) 
     someSegueShouldHappen = false 
    } 
} 

您需要添加一個名爲someSegueShouldHappen或屬性您在第二個視圖控制器上選擇的名稱,如

var someSegueShouldHappen: Bool = false 
+0

謝謝,這是我在思考,以及每賈森的評論...我需要在VC#3區分你是否在這裏「有機地「,即通過應用程序分頁的用戶,或者您是否在主屏幕快捷方式中進行了搜索......我認爲我可以設置應用程序代表的旗幟/布爾值來區分 – GarySabo

+0

不客氣。我很高興我的答案可以被理解,並且您也對如何處理應用中的不同狀態有了很好的理解。 – Daniel