我对 iOS 开发非常陌生。在我的应用程序中,我有一个选项卡栏,在其中一个选项卡中我有一个 UISplitViewController。我的问题是,当我转到选项卡时,它首先显示详细信息 View 。然后我必须单击后退按钮才能获得主视图。我在 stackoverflow 上发现另一个人遇到了这个问题,但解决方案是在 Objective-c 中,并且我正在使用 Storyboard (不知道如何将类附加到它)和 swift,所以这没有帮助。
在纵向模式下使用 ipad 时,它也不起作用。当我切换到横向时,它工作正常,但在纵向模式下仅显示黑屏(没有后退按钮)。任何帮助,将不胜感激。谢谢。
我不确定您还需要哪些其他信息或希望我显示什么,所以如果我遗漏了某些内容,请告诉我。
调整后的应用程序委托(delegate)
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let tabBarController = self.window!.rootViewController as! UITabBarController
let splitViewController = tabBarController.viewControllers![3] as! UISplitViewController
///////////////////Always visible property
splitViewController.preferredDisplayMode = .AllVisible
///////////////////
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true
}
更新:最终按照此答案修复 Open UISplitViewController to Master View rather than Detail
最佳答案
我在项目中创建了一个示例 SplitViewController 并在 appdelegate 中设置了属性。这对我有用 https://github.com/harsh62/stackoverflow_TestMasterDetailApp
splitViewController.preferredDisplayMode = .AllVisible
完整功能如下:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
///////////////////Always visible property
splitViewController.preferredDisplayMode = .AllVisible
///////////////////
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
return true
}
引用文献: UISplitViewController - set always visible master controller when
关于ios - UISplitViewController 首先显示详细 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886180/