从UITableViewController到UISplitViewController Swift-Iphone应用程序

从UITableViewController到UISplitViewController Swift-Iphone应用程序,swift,uisplitviewcontroller,Swift,Uisplitviewcontroller,我已经实现了一个SWRevealViewController菜单,它的后视图是一个UITableViewController,上面几乎没有标签。我想做的是从这些标签分离到一个UISplitViewController。 当我按ctrl键从标签单击并拖动到UISplitViewController时,不显示segue选项。这是Main.storyboard的屏幕截图 此外,我无法将UISplitViewController嵌入UINavigationController中,当我转到“编辑器/嵌入”

我已经实现了一个SWRevealViewController菜单,它的后视图是一个UITableViewController,上面几乎没有标签。我想做的是从这些标签分离到一个UISplitViewController。 当我按ctrl键从标签单击并拖动到UISplitViewController时,不显示segue选项。这是Main.storyboard的屏幕截图


此外,我无法将UISplitViewController嵌入UINavigationController中,当我转到“编辑器/嵌入”时,所有选项都显示为灰色

事实上,您可以将UINavigation控制器与容器视图和第二视图控制器结合使用来实现这一点

将UINavigationController添加到情节提要,并确保将其设置为初始视图控制器:

删除Xcode自动添加的不必要的表视图控制器 将UIViewController添加到情节提要让我们将其重命名为VC1 从情节提要导航树中,按住ctrl键并将其从导航控制器拖动到VC1,然后从弹出窗口中选择Relationship Segue下的根视图控制器: 将UIButton添加到VC1:

将第二个视图控制器添加到场景让我们将其重命名为VC2

将容器视图添加到VC2,替换初始视图将其拖动到视图顶部,使其高亮显示为灰色:

如果你做对了,它应该是这样的:

删除Xcode自动添加到场景并嵌入到容器视图中的不必要的视图控制器,然后在其位置向场景添加拆分视图控制器

按住ctrl键并将其从VC2的容器视图拖动到拆分视图控制器,然后选择“嵌入”: 最后但并非最不重要的是,添加show prev。从VC1中的按钮按顺序到VC2-按住ctrl键并从VC1中的按钮拖动到VC2控制器,然后选择显示:

不允许通过导航控制器推送拆分视图控制器 可能,但有一个替代方案可以完成这项工作

可以创建视图控制器并将拆分视图控制器添加为子视图,然后可以通过导航控制器推送创建的视图控制器。它将显示您的分割视图控制器,您可以使用主视图和详细视图。将导航推送方法添加到tableview中的didselect方法

*请记住将yoursplitviewcontroller类添加到情节提要中的自定义类

注意:拆分控制器->主控,详细信息

let splitVC = getViewController(storyBoardName: "story board name", viewControllerName: "split view controller identifier") as! yoursplitviewcontroller
        view.addSubview(splitVC.view)
        view.bounds = splitVC.view.bounds
        addChild(splitVC)

func getViewController(storyBoardName: String, viewControllerName: String) -> UIViewController{
        let storyBoard = UIStoryboard(name: storyBoardName, bundle: nil)
        return storyBoard.instantiateViewController(identifier: viewControllerName)
    }

您已经知道了-没有导航控制器您无法进行分段。@brandonscript我已经更新了我的问题。。我已将UIViewController添加到我的故事板中,将其嵌入到UINavigationController中,然后使用以下代码段将新的viewcontroller设置为应用程序代理文件中的根viewcontroller:。然后我添加了UISplitViewController,并从按钮中拖出一个显示序列。我不知道如何添加导航组件来将拆分的VC推到堆栈上。这段代码放在App delegate中了吗?我所做的一切都是在IB中完成的-没有代码。这个按钮就是顺序触发器。您可以在代码中复制它,但为什么要这样做呢?我在这里完成的工作大约需要30秒,其中一半要等待Xcode渲染元素。你说得对。看见您还需要使用容器视图控制器。我仍然无法让它工作。您是否可以按照上面的说明构建一个Xcode项目并上传它。感谢为了访问RootViewController,我为拆分视图控制器创建了一个名为GlobalSplitViewController的类,在Main.storyboard中分配了它,然后我将此代码添加到新创建的类中。