我怎样才能得到当前视图是从那个传输的视图

How can I get the view that current view is transmiited from that

我使用下面的代码从我的 mainViewController 传输到另一个 UIViewController:

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

问题是回传用户的最佳方式是什么?有没有办法让我得到显示这个 UIViewController (otherViewController) 的原始 mainViewController 并传回那个,或者我应该创建我的 mainViewController 的新实例并再次使用上面的代码进行传输?

编辑 我忘记说的一个非常重要的一点是,我希望用户在提交输入之前不能返回到 mainViewController

实现此目的有两个不错的选择:

有一个 navigationController 作为 rootViewController 和你当前的主视图控制器作为它的 topViewController。推送您需要用户输入数据的视图控制器。确保在输入所有数据之前禁用后退按钮。

另一种选择是将主视图控制器保留为 rootViewController 并使用 `presentViewController:animated:completion: 从中以模态方式呈现导航控制器。

应该注意的是,替换 rootViewController 很少是一个好主意,因为它会产生不需要的副作用。

写得好!