Ios 如何获取从该视图传输当前视图的视图

Ios 如何获取从该视图传输当前视图的视图,ios,objective-c,uiviewcontroller,uinavigationcontroller,uiwindow,Ios,Objective C,Uiviewcontroller,Uinavigationcontroller,Uiwindow,我使用以下代码从我的mainViewController传输到另一个UIViewController: UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:otherUiViewController]; UIWindow *window = [UIApplication sharedApplication].keyWindow; [UIV

我使用以下代码从我的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
(其他ViewController)的原始
mainViewController
(其他ViewController)并将其传回,或者我应该创建我的
mainViewController
的新实例并再次使用上述代码进行传输

编辑
我忘了说的一个非常重要的点是,我希望用户在提交输入之前不能返回mainViewController有两个很好的选项可以实现这一点:

navigationController
用作
rootViewController
,将当前主视图控制器用作其
topViewController
。按下需要用户输入数据的视图控制器。确保在输入所有数据之前禁用“后退”按钮

另一个选项是将主视图控制器保持为
rootViewController
,并使用'presentViewController:animated:completion:从中以模式显示导航控制器

应该注意的是,更换
rootViewController
很少是一个好主意,因为它有不必要的副作用


好的编码

更改
rootViewController
很少是个好主意。它往往有不必要的副作用。考虑将导航控制器设为<代码> ROOTVIEW控制器,并使主视图控制器的代码< TopVIEW控制器> /代码>。现在,您可以将需要显示的任何视图控制器推送到导航堆栈上,并在任何时候弹回到顶部视图控制器。我希望用户在提交输入之前不能返回到我的mainViewController。您可以使用导航控制器作为
rootViewController
。在用户输入足够的数据之前,不要启用“后退”按钮。或者,使用
presentViewController:animated:completion
rootViewController
顶部以模式显示导航控制器。是的,您是对的。这是最好的办法。thanks@LevLandau如果你愿意,你可以创建一个答案,我会接受它。再次感谢。