Что именно делает presentModalViewController? - PullRequest
0 голосов
/ 05 августа 2011

Если у меня есть навигационный контроллер, который инициализируется с экземпляром корневого контроллера MyViewController.

И в этом коде MyViewController я могу использовать

AnotherViewController *vc = [[AnotherViewController alloc] init];
[self presentModalViewController:vc animated:YES];

или

AnotherViewController *vc = [[AnotherViewController alloc] init];
[self.navigationController presentModalViewController:vc animated:YES];

Я нашел эти две работы одинаковыми.Оба корректно представляют модальное представление. И я обнаружил, что представленное свойство parentViewController для AnotherViewController все настроено для контроллера навигации.

Почему это происходит? PresentModalViewController автоматически обнаруживает, что self является подпредставлениемнавигационный контроллер и повторно отправить сообщение навигационному контроллеру?

1 Ответ

0 голосов
/ 05 августа 2011

Поскольку MyViewController является корневым контроллером представления UINavigationController, он получает удобный метод presentModalViewController: animated: по умолчанию. Поэтому, когда вы говорите self.navigationController, он ссылается на тот же навигационный контроллер, который вам предоставляет presentModalViewController. Я думаю, что Apple просто пытается сделать более удобным использование удобного метода.

...