Лучшая практика для отображения модального вида над UISplitViewController - PullRequest
3 голосов
/ 22 июля 2010

Создание нового приложения на основе шаблона SplitViewController, и оно отлично работает в режиме Split View.

Мой главный экран должен быть «меню» без разделения экрана. Я пытаюсь выяснить лучшую практику для добавив это 'mainMenu' модально над splitViewController. (Затем выдвиньте другие разделенные виды над главным меню или удалите его, чтобы показать и использовать UISplitViewController.)

Я пробовал:

[self.navigationController presentModalViewController:mainMenu animated:NO];

И

[self presentModalViewController:mainMenu animated:NO];

В методах viewWillAppear и viewWillLoad для rootViewController и detailViewController. В обоих случаях код выполняется без ошибок, но mainMenu не появляется, появляются обычные detailViewController и rootViewControllers.

(Я создал выход из элемента navigationController в файле main.xib в detailView navigationController, но это ничего не изменило.)

Я смог сделать эту работу с помощью, которая работает, но кажется, что это неправильно.

iPad_Prototype_SplitAppDelegate *delegate = (iPad_Prototype_SplitAppDelegate *) [   [UIApplication sharedApplication] delegate];

[delegate.splitViewController.view addSubview:mainMenu.view];
[delegate.splitViewController.view bringSubviewToFront:mainMenu.view];

Я видел много ответов, в которых говорилось о представлении такого вида покрытия модально, но я не могу найти нужное место или конфигурацию в настройке splitViewController. Спасибо за любую помощь или понимание.

Наконец, является ли этот подход неправильным, я должен просто поменять detailViewController и заставить его работать в полноэкранном режиме в портретном режиме, а не добавлять пункт меню для корневого контроллера?

1 Ответ

1 голос
/ 25 июля 2011

Ваш splitViewController в AppDelegate похож на пример и поможет ли это?

//AppDelegate.m
- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  

MyController *myCont = [[MyController alloc] initMainMenu];
// mess around with myCont.view.modalPresentationStyle;

[myCont setModalDelegate:self]; 
// Create a delegate (<ModalControllerDelegate>) to dismiss view when done

[self.splitViewController presentModalViewController:myCont animated:NO];
[myCont release];
}

// for completion sake
-(void)modalViewDismiss:(MyController *)modalView {
    [self.splitViewController dismissModalViewController:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...