如何使用 UIContainerView 在 UISplitViewController master 上隐藏 iPad 嵌入式辅助 UITableViewController 的 DetailView

How can hide on iPad an embedded secondary UITableViewController's DetailView on a UISplitViewController master using UIContainerView

首先对不起我的英语。 我有一个 UISplitViewController,我用 UIViewController 替换了模板主 UITableViewController,放置了一个 UITableView 和 UIContainerView,其中包含用于设置的第二个静态 UITAbleViewController,其中一个设置单元格具有另一个细节 UITableViewController 以更改其值。在 iPhone 上运行良好,但在 iPad 上使用该 splitviewcontroller 此设置值 table 显示在 splitviewcontroller 详细视图上。它也很好,但我不能再隐藏了。 (在 iPhone 上有一个后退按钮,效果很好) 我找不到解决方案。 我的问题是如何隐藏该详细视图以显示拆分视图的原始详细视图? 这是我从故事板中获取的 3 张图片,初始视图以及设置值何时打开(无法隐藏 n iPad)

任何建议都会很好。谢谢 Storyboard

Ipad screenshots

最后我做了一个简单的解决方案。删除设置 tableviewcontroller 上的显示详细故事板 segue 并为自定义推送定义 didSelectRowAtIndexPath

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    //i want only the third row to perform an action
    if indexPath.row == 2 {
        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let groupListViewController = mainStoryboard.instantiateViewControllerWithIdentifier("GroupListViewController") as! GroupListViewController
        self.navigationController!.pushViewController(groupListViewController, animated: true)
    }

}

这样我就可以将任何视图推送到左侧或右侧的拆分视图,因为它们都有导航控制器。在此之后,我在推送的 tableviewcontroller 上定义了相同的函数,触发一些动作并返回。它对 iPad 和 iPhone 也很有效。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        self.appDelegate.client.selectedGroupIndex = indexPath.row

        //The main master viewcontroller of split view
        let vehicleListViewController = self.navigationController?.viewControllers.first as! VehicleListViewController

        //settingsviewcontroller that embedded in master viewcontroller
        let vehicleListSettingsViewController = vehicleListViewController.childViewControllers.first as! VehicleListSettingsViewController

        //call a custom function on embedded settings viewcontroller to change selected value
        vehicleListSettingsViewController.changeGroup(indexPath.row)

        //refresh splitviewcontroller's master tableview
        vehicleListViewController.tableView.reloadData()

        //Easy go back to masterview
        self.navigationController?.popViewControllerAnimated(true)


    }