Разрешение автоповорота внутри программно созданного представления, которое отображается модально - PullRequest
0 голосов
/ 08 июня 2011

Об этом десятки раз спрашивали на этом сайте, но я не нашел ответ, который мне подходит.У меня есть приложение для iPad с UISplitViewController на корневом уровне, которое создается программно.Внутри представления, отображаемого на правой панели, которое запускается при взаимодействии с пользователем, программно создается UINavigationController и представляется ему.Вот этот код:

listenerController = [[UINavigationController alloc] initWithRootViewController:listenerView];
[listenerController.navigationBar setTintColor:[UIColor colorWithRed:185.0f/255.0f green:80.0f/255.0f blue:0.0f/255.0f alpha:1.0f]];

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {                    
    [listenerController setModalPresentationStyle:UIModalPresentationFormSheet];
    [listenerController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [listenerController setModalInPopover:YES];
}

[self presentModalViewController:listenerController animated:YES];    
[listenerController release];

Это действительно создает контроллер представления должным образом, но когда он отображается, iPad возвращается в портретную ориентацию независимо от того, в какой ориентации у меня iPad. Затем, когда я отклоняюмодальное окно, оно будет вращаться назад.

У меня уже есть shouldAutorotateToInterfaceOrientation в viewcontroller правой панели, установленной в YES, и я даже попытался добавить это в основной класс делегатов приложения без какой-либо удачи.Не похоже, что мне нужно было бы создавать подкласс UINavigationController просто для того, чтобы переопределить метод shouldAutorotateToInterfaceOrientation.

Вызываю ли presentModalViewController из неправильного объекта?Я попытался [self presentModalViewController ...], а также [self.parentViewController presentModalViewController ...] с теми же результатами.

1 Ответ

1 голос
/ 19 августа 2011

Я предполагаю, что self в вашем примере кода является контроллером вида справа (подробно).Вам нужно позвонить presentModalViewController из корня UISplitViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...