2016-02-05 77 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: "") 
     } 
    }