Я пишу только приложение iOS 8, и я использую новые адаптивные презентации, используя комбинацию "Show" и "Show Detail" segue и методы showViewController:sender:
и showDetailViewController:sender:
.
Мой вопрос в том, что является программным способом вернуться после вызова showViewController:sender:
? Способ отображения контроллера просмотра зависит от его родительского контекста. Например. в UINavigationController
showViewController:sender:
выталкивает новый контроллер в стек навигации, но если в графике контроллера просмотра нет контейнера UIKit, тогда showViewController:sender:
заканчивает выполнение презентации.
Учитывая, что я мог написать свой собственный произвольный контроллер контейнера, кажется невозможным проверить
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
}
else if (self.presentingViewController){
...
else if ([self.parentViewController isKindOfClass:[CrazyCustomContainer class]]){
[self.parentViewController someWackyUnwindMethod];
}
...
и т.д.... так что существует общий способ обратного отображения? Если не единственное решение, которое я вижу, это использовать разматывание для всего. Не слишком много хлопот, но мне любопытно.