Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绕过UIView而不显示_Uiview_Uinavigationcontroller_Storyboard - Fatal编程技术网

绕过UIView而不显示

绕过UIView而不显示,uiview,uinavigationcontroller,storyboard,Uiview,Uinavigationcontroller,Storyboard,我正在为iOS 7应用程序使用故事板。根控制器是一个菜单。对于几乎所有的视图,我都有一个菜单按钮,可以使用[self.navigationController popToRootController:TRUE]将应用程序带回该菜单。但是,有两个UIView元素,我希望在其中清除导航控制器视图列表(当您弹出到根控制器时会发生这种情况),但随后立即转到另一个UIView,而不让用户看到根控制器的视图。在这个新视图中,如果用户按下后退按钮,我希望他们转到菜单视图 我曾尝试在视图中设置performSe

我正在为iOS 7应用程序使用故事板。根控制器是一个菜单。对于几乎所有的视图,我都有一个菜单按钮,可以使用[self.navigationController popToRootController:TRUE]将应用程序带回该菜单。但是,有两个UIView元素,我希望在其中清除导航控制器视图列表(当您弹出到根控制器时会发生这种情况),但随后立即转到另一个UIView,而不让用户看到根控制器的视图。在这个新视图中,如果用户按下后退按钮,我希望他们转到菜单视图

我曾尝试在视图中设置performSegue,但它确实会将导航控制器和视图弄乱。我试着在ViewDidDisplay中设置performSegue,但用户首先看到菜单视图闪烁,然后在进入正确视图的过程中显示

我希望我已经解释得足够清楚了。我希望可以做到这一点


谢谢。

您最好自己构建导航控制器堆栈,然后使用
-(void)setViewControllers:(NSArray*)viewControllers animated:
替换当前堆栈

所以你可以做一些像

...
UIViewController *vcToPush = ...;
NSArray *newVCStack = @[[self.navigationController.viewControllers firstObject], vcToPush];
[self.navigationController setViewControllers:newVCStack animated:YES];

这将使用标准推送动画将新控制器添加到堆栈中(如果选择,也可以不添加),动画完成后,将视图堆栈设置为阵列的视图堆栈

那么,一旦我完成了上面的操作,我是否会从当前视图到下一个要显示的视图进行切换?我现在明白了。SetViewController实际上也会显示它们,将lastObject保留为当前视图。谢谢