Как мне изменить RootViewController на другой XIB?

#ios #xcode #ipad #uiviewcontroller #modal-dialog

#iOS #xcode #iPad #uiviewcontroller #модальный диалог

Вопрос:

Я пытаюсь понять фундаментальную концепцию ViewControllers. Для моей цели мне нужно переключать XIBS (не модально), а полностью, чтобы сэкономить память. По сути, я хочу вызвать другой XIB и использовать его функции, а затем, нажав кнопку на этом XIB, загрузить другой XIB.

 -(IBAction)GoToPage:(id)sender
{
    GoToPage *gotopage = [[[GoToPage alloc] init] autorelease];
    [self presentModalViewController:gotopage animated:YES];
}
 

Я знаю, что приведенный выше код просто модально добавляет подпредставление. Может ли кто-нибудь направить меня в правильном направлении, как я мог бы это сделать?

Это для книги для iPad.

Ответ №1:

Я бы посоветовал прочитать руководство по программированию контроллера просмотра Apple для iOS, чтобы получить четкое представление о назначении контроллеров просмотра.

В качестве краткого обзора контроллер просмотра обычно отвечает за управление одним «полным экраном» содержимого на устройстве размером с телефон или частью экрана на iPad, поскольку на iPad можно использовать несколько контроллеров просмотра, например UISplitViewController . Если вы хотите анимировать между полноэкранными контроллерами просмотра на iPad, вы можете использовать a UINavigationController , который управляет иерархией контроллеров просмотра. Вы не упоминаете, что GoToPage наследуется от, будь то UIView или UIViewController . В вашем случае это должен быть подкласс UIViewController .

Использование a UINavigationController позволит вам управлять несколькими UIViewController подклассами, сохраняя иерархию в такте, чтобы пользователь мог вернуться к предыдущим контроллерам представления. Вы бы использовали -pushViewController:animated: для отправки нового экземпляра вашего подкласса view controller в стек view controller контроллера навигации, и UINavigationController в большинстве случаев переход обратно обрабатывается автоматически.

XIB просто инкапсулирует пользовательский интерфейс, а не какой-либо пользовательский код. Прокси-сервер владельца файла XIB должен быть установлен на ваш UIViewController подкласс, что позволяет вам преодолеть разрыв между элементами интерфейса на XIB и кодом внутри вашего UIViewController подкласса за счет использования IBOutlet и IBAction свойств вашего подкласса.

Наконец, если вы ориентируетесь только на iOS 5.0, я бы рекомендовал изучить UIPageViewController , который управляет несколькими контроллерами просмотра и позволяет переходить между ними с помощью анимации перелистывания страниц, подобной iBooks. Прежде всего, прочитайте руководство по программированию контроллера просмотра 1

Комментарии:

1. Ссылка недоступна — пожалуйста, исправьте