Я узнаю о UINavigationController
и UIViewController
s. Вот простое приложение, которое я создаю. Обратите внимание, что я использую ARC.Как работает UINavigationController и UIViewController?
У моего приложения есть контроллер навигации и два контроллера вида (назовем их FirstViewController
и SecondViewController
). Когда приложение запускается навигационным контроллером, нажмите FirstViewController
на стек.
В FirstViewController
У меня есть кнопка, которая нажимает SecondViewController при касании. Вот какой код.
FirstViewController.m
-(IBAction)pushSecondViewController
{
SecondViewController *secondViewController = [SecondViewController alloc]init];
[self.navigationController pushViewController:secondViewController animated:YES];
}
Во втором контроллере представления У меня есть кнопка, которая поп текущего контроллера представления из стека.
SecondViewController.m
-(IBAction)popViewController
{
[self.navigationController popViewControllerAnimated:YES];
}
До сих пор, так хорошо. Вот мои вопросы:
Контролирует ли navigationController существующий экземпляр SecondNavigationController
, а если таковой не существует, то он создает новый?
Если нет, следует ли использовать singleton, чтобы убедиться, что только один экземпляр создан и повторно используется вместо создания нового экземпляра каждый раз, когда нажата кнопка, которая нажимает SeconViewController
?
Нет, я не хочу держать вокруг второго контроллера. Мне было любопытно, как работает контроллер навигации. Спасибо за объяснение! – ihodo
Чтобы не начинать новую тему.Если мое приложение содержит, скажем, четыре диспетчера представлений, первый и второй контроллеры представлений используются только один раз в приложении. Должен ли я поместить их ([self.navigationController popViewControllerAnimated: YES]) с контроллера навигации, чтобы не использовать память? – ihodo
Нет, используйте только push и popping для перемещения вверх и вниз по стеку навигации. – jrturton