Я недавно начал проект, используя пример проекта Apple Utility Application. В примере проекта есть информационная кнопка, которая показывает экземпляр FlipSideView. Если вы знаете приложение Weather.app, вы знаете, как работает кнопка.
Затем я изменил файл MainWindow.xib, чтобы он содержал представление прокрутки в середине окна и представление управления страницей в нижней части окна (опять же, как в Weather.app). Вид прокрутки заполняется экземплярами MainView. Когда я затем нажимал кнопку «Информация», FlipSideView показывался, но только в той области, которая ранее была заполнена экземпляром MainView - это означает, что представление управления страницей внизу страницы все еще показывалось, когда загружался экземпляр FlipSideView.
Итак, я подумал, что просто добавлю UIViewController для самого верхнего окна, которое объявлено внутри AppDelegate, созданного вместе с проектом. Итак, я создал подкласс UIViewController, поместил его экземпляр в MainWindow.xib и подключил его выходное представление к UIWindow, объявленному как окно внутри делегата приложения. Я также изменил действие кнопки, чтобы она отправляла сообщение экземпляру MainWindowController. Сообщение действительно отправляется (я проверил с помощью операторов NSLog ()), но FlipSideView не отображается. Вот соответствующий (?) Код:
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
Почему это не работает внутри MainWindowController, но точно такой же код работает внутри MainViewController? Я загрузил весь проект здесь , чтобы вы могли увидеть все это.
Спасибо за помощь!
- Ry
РЕДАКТИРОВАТЬ: Я думаю, что это может быть связано со мной, подключив выход представления UIViewController к экземпляру UIWindow. Теперь я подключаю его к UIView, и он отлично работает.