从tableview看到导航控制器之前的视图

时间:2016-02-05 19:29:53

标签: ios xcode swift segue

在我的项目中,我在TableView中有一个包含3个选项的幻灯片菜单。根据所选的选项,我希望将它们转换为ViewController1,ViewController2或ViewController3,所有这些选项前面都有一个导航控制器。

目前我在Storyboard中使用了一个segue,从原型单元格到ViewController1,其中“segueid”作为标识符,因此所有选项都转到ViewController1。

这是file.swift中准备segue的代码:

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

当XCode只允许我从故事板中的单元格设置一个segue时,问题出现了,所以我不能指向VC2和VC3。

根据tableview中选定的行,是否有任何方法可以根据导航控制器的不同视图进行划分?

2 个答案:

答案 0 :(得分:2)

您应该在viewcontrollers之间创建segue。

不要从cell到viewcontrollers创建segue。

然后在选择一个单元格后,您应该决定要调用哪个segue。

答案 1 :(得分:1)

我认为它会帮助你。从此链接下载源代码。它的AKSwiftSlideMenu for iOS AKSwiftSlideMenu

它在BaseViewController中有一个方法,您可以在其中设置从storyboard实例化的选定视图控制器作为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: "")
        }
    }