Как мне изменить RootViewController на другой XIB? - PullRequest
0 голосов
/ 02 ноября 2011

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

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

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

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

1 Ответ

2 голосов
/ 02 ноября 2011

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

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

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

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

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

...