В application:didFinishLaunchingWithOptions:
Я добавляю разделенное представление:
[self.window addSubview:splitViewController.view];
[self.window makeKeyAndVisible];
splitViewController
происходит из NIB, загруженного в делегат приложения, и довольно просто, с табличным представлением слева и некоторымипользовательский вид справа.
В shouldAutorotateToInterfaceOrientation:
из splitViewController
Я возвращаю НЕТ, если interfaceOrientation имеет значение UIInterfaceOrientationPortrait
или UIInterfaceOrientationPortraitUpsideDown
(в моем представлении больше смысла показывать только такво время 1-го запуска).
Когда я запускаю свое приложение в симуляторе (SDK 4.2), симулятор поворачивается в альбомную ориентацию, как я ожидаю, но детальный вид не виден (черный).Представление таблицы слева просто отлично.
Что интересно, когда я поворачиваю симулятор 2 раза влево или вправо, подробное представление становится видимым, как и ожидалось.
Кажетсячто в начале подробный вид находится за каким-то другим видом, я проверил его, зарегистрировав кадр каждого контроллера представления (в shouldAutorotateToInterfaceOrientation:
):
Details VC frame: {{0, 20}, {768, 1004}}
SiteSelection frame: {{0, 20}, {768, 1004}}
SPLIT VC frame: {{0, 20}, {768, 1004}}
Кроме того, контроллер разделенного представленияподпредставления дают:
v: <UIView: 0x5c32d60; frame = (0 20; 768 1004); layer = <CALayer: 0x5c335e0>>
v: <UILayoutContainerView: 0x5c94dc0; frame = (0 0; 768 1004); clipsToBounds = YES; layer = <CALayer: 0x5c94e10>>
Таким образом, кажется, что по какой-то причине табличное представление занимает всю оконную раму iPad и перекрывается подробным пользовательским представлением.
Это правильно?Что может быть причиной этого?В NIB все вроде нормально.Я подозреваю, что shouldAutorotateToInterfaceOrientation:
виноват.Как я могу это исправить?