【问题标题】:Segue from tableview to view preceded by navigation controller从 tableview 转到导航控制器前面的视图
【发布时间】:2016-02-05 19:29:53
【问题描述】:

在我的项目中,我在 TableView 中有一个带有 3 个选项的幻灯片菜单。根据所选的选项,我想选择 ViewController1、ViewController2 或 ViewController3,所有这些选项都以导航控制器开头。

目前我在 Storyboard 中使用从 Prototype Cell 到 ViewController1 的 segue,以“segueid”作为标识符,因此所有选项都转到 ViewController1。

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

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

当 XCode 只允许我从情节提要中的单元格设置一个 segue 时,问题就出现了,因此我无法指向 VC2 和 VC3。

是否有任何方法可以根据从 tableview 中选择的行来选择导航控制器前面的不同视图?

【问题讨论】:

    标签: ios xcode swift segue


    【解决方案1】:

    您应该在视图控制器之间创建转场。

    不要创建从单元到视图控制器的 segue。

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

    【讨论】:

    • 效果很好!现在我将下面粘贴的代码添加到 didSelectRowAtIndexPath 以选择正确的 segue。谢谢! performSegueWithIdentifier("segue_" + listOfOptions[indexPath.row].optionName, sender: nil)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2013-05-09
      • 2013-09-06
      • 2023-03-17
      相关资源
      最近更新 更多