好的,我有一个通用的单视图应用程序,其中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
对不起,如果这是不必要的描述,我只是想确保我得到所有的信息。
一切都有帮助。提前谢谢