У меня есть приложение с основными деталями (я создал его с использованием шаблона Xcode, а затем немного изменил его), и я пытаюсь установить свойство preferredDisplayMode UISplitViewController для получения этого поведения:UISplitViewController's preferredDisplayMode: неправильное поведение
UISplitViewControllerDisplayMode.PrimaryOverlay: контроллер основного представления накладывается поверх контроллера вторичного представления, оставляя частично видимый контроллер дополнительного вида.
Таким образом, главный контроллер просмотра должен быть сверху контроллера детали, и его следует уволить. Я изменить это свойство в приложении: didFinishLaunchingWithOptions :, это полный код:
// Inside application:didFinishLaunchingWithOptions:
// Override point for customization after application launch.
let rootViewController = window!.rootViewController as! UINavigationController
// The root view controller is a navigation controller that contains the split view controller
let splitViewController = rootViewController.viewControllers[0] as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem() splitViewController.delegate = self
splitViewController.preferredPrimaryColumnWidthFraction = 0.4 splitViewController.maximumPrimaryColumnWidth = 600 splitViewController.preferredDisplayMode = .PrimaryOverlay
return true
У меня есть две проблемы: во-первых, это не поведение, которое я получаю. Контроллер главного представления скрыт, когда приложение запускается, и если я нажму на элемент левой кнопки панели, чтобы показать мастер, он быстро появится и снова исчезнет. Если я нажму на нее в другой раз, она появится, не исчезнув.
Во-вторых, я получаю предупреждение в консоли:
2015-06-30 12:06:26.613 Presidents[29557:857547] Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x7b8be610>.
Но у меня нет никаких переходов в моем коде.
PS: Это из книги «Beginning развития телефона с Свифтом» Д. Марком, Дж Nutting, К. Топлеем, Ф. Олссон, Дж LaMarche, глава 11.