Я не уверен, что это «HIG-friendly», но вы могли бы реализовать что-то, когда пользователь нажимает кнопку, вы отправляете сообщение обратно в ваш AppDelegate и говорите ему об обмене вашим splitViewController с вашим fullScreenViewController на уровне окна.
Например, в вашем AppDelegate.m
:
- (void)showFullScreenController
{
if (self.splitViewController.superview != nil) { // Just check that the split view controller is currently showing
FullScreenViewController *newFullScreenController = [[FullScreenViewController alloc] initWithNibName:@"FullScreenViewController" bundle:nil];
self.fullScreenController = newFullScreenController;
[newFullScreenController release];
[self.splitViewController viewWillDisappear:YES]; // "YES" assumes you are animating the transition
[self.fullScreenController viewWillAppear:YES];
// Remove old view and add new one.
[self.splitViewController.view removeFromSuperview];
[window addSubview:self.fullScreenController.view];
[self.splitViewController viewDidDisappear:YES];
[self.fullScreenController viewDidAppear:YES];
self.splitViewController = nil;
}
}
Этот метод можно легко превратить в метод «переключения представлений», используя соответствующий оператор else
и загрузив вместо него splitViewController
.
Надеюсь, это поможет.