UITabbarController Swift中的UISplitViewController

时间:2016-07-09 03:12:15

标签: ios swift uitableview uitabbarcontroller uisplitviewcontroller

好的,我有一个通用的单视图应用程序,其中UITabbarController作为初始的ViewController。我有一个UISplitViewController作为其中一个选项卡中的项目。 SplitViewController有一个navigationController作为它的主segue,它有一个带有uitableView的viewController,如果你单击一个单元格,它会“显示”详细视图(我也试过了show detail segue)。 splitViewControllers详细信息视图控制器segue转到详细视图控制器。 我的问题是,当我使用splitViewController进入选项卡时,它首先显示详细信息而不是主设备(ipad和iphone都相同)。我花了几个小时阅读和观看不同的教程,并在这里查看问题,无法找到解决方案。

我试过的代码(在自定义拆分视图控制器类和带有tableView类的viewcontroller中):

func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
    return true

}

override func viewWillAppear(animated: Bool) {

    splitViewController?.delegate = self
    self.splitViewController!.delegate = self;
    self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible

    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        if let con = self.splitViewController {
            con.preferredDisplayMode = .PrimaryOverlay
            print("phone")
            //^this code doesnt run when i run it on my iphone
        }
    } else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
        if let spec = self.splitViewController {
            spec.preferredDisplayMode = .AllVisible
        }
    } else {
        if let tit = self.splitViewController {
            tit.preferredDisplayMode = .Automatic
        }
    }


}

//controller with tableView class declaration
class OutfitTable : UIViewController, UITableViewDelegate, UITableViewDataSource, UISplitViewControllerDelegate {

//custom splitViewController class declaration
class SplitViewController: UISplitViewController, UISplitViewControllerDelegate

主要故事板的屏幕截图: enter image description here

对不起,如果这是不必要的描述,我只是想确保我得到所有的信息。

一切都有帮助。提前谢谢

0 个答案:

没有答案