я использую ниже код, чтобы передать от моего mainViewController других UIViewController
:Как я могу получить представление, что текущий вид transmiited из этого
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:otherUiViewController];
UIWindow *window = [UIApplication sharedApplication].keyWindow;
[UIView transitionFromView:window.rootViewController.view
toView:navigationController.view
duration:1.2f
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:^(BOOL finished){
window.rootViewController = navigationController;
}];
на otherUIViewController
основную темой является то, что пользователь вводит некоторые входной и представить, что (но, возможно, потребуется некоторое перемещение на другие страницы тоже, именно поэтому я использую UINavigationController
для показа otherUIViewController
) при подаче на вход Я хочу, чтобы передать их обратно в мой mainViewController
(UIViewController
, что пользователь передается от него)
Вопрос в том, что лучший способ передать обратно пользователя? Есть ли способ получить оригинал mainViewController
, который показал это UIViewController
(otherViewController) и передать его обратно, или я должен создать новый экземпляр моего mainViewController
и снова использовать код выше для передачи?
EDIT очень важный момент, который я забыл сказать, что я хочу, что пользователь не может вернуться к mainViewController, пока они подать на вход
Изменение 'rootViewController' редко бывает хорошей идеей. Он имеет нежелательные побочные эффекты. Подумайте о том, чтобы сделать ваш контроллер навигации 'rootViewController' и сделать ваш основной контроллер представления его' topViewController'. Теперь вы можете нажать все контроллеры представлений, которые вам нужно показать в стек навигации, и вернуться в контроллер верхнего уровня в любой точке. –
Я хочу, чтобы этот пользователь не смог вернуться к моему mainViewController, пока он не отправит вход –
. Вы можете сделать это с помощью контроллера навигации в качестве 'rootViewController'. Просто не включайте кнопку «Назад», пока пользователь не занесет достаточно данных. В качестве альтернативы используйте 'presentViewController: анимированный: завершение', чтобы представить навигационный контроллер по модулю поверх' rootViewController'. –