2016-02-05 110 views
1

在我的項目中,我有一個幻燈片菜單,其中有3個選項在TableView中。根據所選的選項,我想繼續使用ViewController1,ViewController2或ViewController3,所有這些選項都以導航控制器開頭。從桌面查看查看前導航控制器

目前我在Prototype Cell中使用了一個Segueid中的segue,以「segueid」作爲標識符,因此所有選項都繼承了ViewController1。

這是代碼在file.swift準備SEGUE:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "segueid"{ 
     var DestViewController = segue.destinationViewController as! UINavigationController}} 

問題是當了XCode只允許我從細胞中的故事板設定一個賽格瑞所以我不能點和VC2 VC3。

有沒有什麼辦法可以根據從tableview選擇的行瀏覽到導航控制器前面的不同視圖?

回答

1

你應該在視圖控制器之間創建你的segues。

不要從單元格創建segue到視圖控制器。

然後,當你選擇一個單元格,你應該決定你想調用哪個segue。

+1

工作完美!現在我將下面的代碼添加到didSelectRowAtIndexPath中以選擇正確的segue。謝謝! 'performSegueWithIdentifier(「segue_」+ listOfOptions [indexPath.row] .optionName,sender:nil)' –

+0

歡迎,祝你好運! – meda

0

我認爲它會幫助你。從此鏈接下載源代碼。其適用於iOS的AKSwiftSlideMenu AKSwiftSlideMenu

它在BaseViewController中有一個方法,您可以在storyboard中將您選定的viewcontroller實例化爲self.navigationController的根視圖控制器。

func slideMenuItemSelectedAtIndex(index: Int32) { 
     let topViewController : UIViewController = self.navigationController!.topViewController! 
     print("View Controller is : \(topViewController) \n", terminator: "") 
     switch(index){ 
     case 0: 
      print("Home\n", terminator: "") 
      break 
     case 1: 
      print("Play\n", terminator: "") 
      break 
     case 2: 
      print("Camera\n", terminator: "") 
      break 
     default: 
      print("default\n", terminator: "") 
     } 
    }