我试图通过在MasterView的UINavigationController前面添加一个UITabbarController来扩展默认的Apple MasterDetail模板,所以有这样的结构:



但是,如果我运行该应用程序,则在将应用程序(didFinishLaunchingWithOptions)更改为使用正确的ViewController之后,尝试执行ShowDetails Segue在iPhone上以Modular形式呈现的DetailsView ist。另一方面,iPad版本正在按预期运行。
我忘了做什么?或者我该如何解决?

最佳答案

只是为了更新上面的答案。由于您无法再推送导航 Controller ,因此必须改为推送其顶 View Controller 。

    func splitViewController(splitViewController: UISplitViewController, showDetailViewController vc: UIViewController, sender: AnyObject?) -> Bool {
        if splitViewController.collapsed {
            let tabBarController = splitViewController.viewControllers.first as! UITabBarController
            let selectedNavigationViewController = tabBarController.selectedViewController as! UINavigationController

            // Push view controller
            var viewControllerToPush = vc
            if let navController = vc as? UINavigationController {
                viewControllerToPush = navController.topViewController
            }
            selectedNavigationViewController.pushViewController(viewControllerToPush, animated: true)

            return true
        }

        return false
    }

关于uitabbarcontroller - UISplitviewController Master中的iOS8 TabbarController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25580981/

10-13 07:37