我用下面的代码从我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
的新实例,并再次使用上面的代码进行传输?
编辑,我忘了说 很重要的一点是,我希望该用户不能回mainViewController直到他们提交的输入
更改'rootViewController'很少是个好主意。它往往有不必要的副作用。考虑让你的导航控制器成为'rootViewController',并让你的主视图控制器成为'topViewController'。现在,您可以将任何需要显示的视图控制器推送到导航堆栈上,并随时弹回顶部视图控制器。 –
我希望该用户不能回到我的mainViewController,直到它提交输入 –
您可以使用导航控制器作为'rootViewController'。只有在用户输入足够的数据后才启用后退按钮。或者,使用'presentViewController:animated:completion'来模拟地在'rootViewController'之上显示导航控制器。 –