从UITableViewController转到UISplitViewController Swift - Iphone App

时间:2016-08-12 15:07:48

标签: swift uisplitviewcontroller

我已经实施了一个SWRevealViewController菜单作为后视图,UITableViewController上面有几个标签。我想要做的是从这些标签转移到UISplitViewController。 当我按住Ctrl键并从标签拖动到UISplitViewController时,没有显示segue选项。这是Main.storyboard的截图

enter image description here

此外,我无法在UINavigationController中嵌入UISplitViewController,当我进入编辑/嵌入时,所有选项都是灰色的。

2 个答案:

答案 0 :(得分:1)

事实上,您可以将UINavigation控制器与容器视图和第二个视图控制器结合使用。

  1. 将UINavigationController添加到故事板并确保将其设置为初始视图控制器:

  2. 删除Xcode自动添加的不必要的表视图控制器
  3. 在故事板中添加UIViewController(让我们将其重命名为VC1
  4. 从故事板导航树中, ctrl +从导航控制器拖动到VC1并从弹出窗口中选择关系Segue下的root view controller
  5. 将UIButton添加到VC1:

  6. 向场景中添加第二个视图控制器(让我们将其重命名为VC2

  7. 向VC2添加容器视图,替换初始视图(将其拖到视图顶部以使其突出显示灰色):

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

  8. 删除Xcode自动添加到场景并嵌入容器视图中的不必要的View Controller,然后将Split View Controller添加到场景中

  9. ctrl +从VC2的容器视图拖动到Split View Controller并选择Embed:
  10. 最后但并非最不重要的是,从VC1中的按钮添加一个show(prev.push)segue到VC2 - ctrl +从VC1中的按钮拖动到VC2控制器并选择显示:

答案 1 :(得分:0)

不通过导航控制器推动拆分视图控制器 可能,但是有另一种方法可以完成工作

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

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

说明 splitcontroller->(主,详细信息)

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)
    }