Разница между presentModalViewController и presentViewController?
В iOS 5 SDK существует два метода UIViewController, presentModalViewController: анимированный: и presentViewController: анимированный: завершение:.
Какая разница между этими двумя методами?
В документации написано: метод currentViewController: анимированный: завершение: предпочтительным способом представления модального представления с iOS 5.0.
Если я использую presentModalViewController: анимированный в iOS 5, это вызовет ошибку?
Являются ли они функционально-одинаковыми?
Ответы
Ответ 1
Они, похоже, делают то же самое, что и яблоко documentation указывает, что с iOS 5.0 presentViewController
является предпочтительным способом представления что presentViewController
теперь позволяет вам иметь обработчик завершения, тогда как раньше вы этого не делали.
И ни один из старых presentModalViewController
не должен быть лучшим в iOS 5.0, если это вызвало ошибку, которая была бы проблемой для всех старых приложений и не была бы очень обратной совместимостью. Кроме того, кажется, что теперь с presentViewController
вы можете получить намного больше информации о иерархии viewController, поскольку у нас есть свойства presentingViewController
, presentedViewController
.
Ответ 2
Еще одно важное замечание: presentModalViewController будет устаревать в будущем, как указано в UIViewController.h структуры UIKit (версия Xcode 4.3.1):
// Display another view controller as a modal child. Uses a vertical sheet transition if animated.This method has been replaced by presentViewController:animated:completion:
// It will be DEPRECATED, plan accordingly.
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated;
// Dismiss the current modal child. Uses a vertical sheet transition if animated. This method has been replaced by dismissViewControllerAnimated:completion:
// It will be DEPRECATED, plan accordingly.
- (void)dismissModalViewControllerAnimated:(BOOL)animated;