UISplitViewController сначала показывает подробный вид
Я очень новичок в разработке iOS. В моем приложении у меня есть панель вкладок, и на одной из вкладок у меня есть UISplitViewController. Моя проблема в том, что когда я перехожу на вкладку, она сначала показывает подробный вид. Затем я должен нажать кнопку назад, чтобы получить основной вид. Я нашел еще одного человека, имеющего эту проблему в stackru, но решение было в Objective-c, и я использую раскадровку (не знаю, как присоединить к ней класс) и swift, так что это не помогло.
Он также не работает при использовании ipad в портретном режиме. Когда я переключаюсь в альбомную ориентацию, он работает нормально, но показывает только черный экран (без кнопки возврата) в портретном режиме. Любая помощь будет оценена. Благодарю.
Я не уверен, какая другая информация вам нужна или что вы хотите, чтобы я показал, поэтому дайте мне знать, если я что-то пропустил.
скорректированный appdelegate
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
}
Обновление: в конечном итоге исправление после этого ответа Откройте UISplitViewController в Master View, а не в Detail
1 ответ
Я создал образец SplitViewController в проекте и установил свойство в приложении applelegate. Это работает для меня https://github.com/harsh62/stackru_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 - установить всегда видимый главный контроллер, когда