相关疑难解决方法(0)

如何从导航控制器一次弹出两个视图?

我想弹出导航堆栈上的第三个视图回到第一个视图.

我知道如何一次弹出一个视图:

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

但我怎么一次做两个呢?

谢谢...

iphone uinavigationcontroller ios

85
推荐指数
9
解决办法
6万
查看次数

在segue期间从UINavigationController的导航堆栈中删除视图控制器?

我是iOS开发的新手,我正在构建一个由UINavigationController和三个ViewControllers组成的应用程序,我将其称为A,B和C.

最初显示视图控制器A. 从那里,我有两个工作流程:

  1. A> C.

  2. A> B> C.

在第二个工作流程中,我在视图控制器B上定义了shouldPerformSegue(withIdentifier).在此方法的内部,我需要做一些工作来决定是否应该显示视图控制器C或取消segue并显示错误消息.假设没有发生错误,将执行查看控制器C的segue.当显示视图控制器C时,后退按钮指向观察控制器B,但我需要它指向后面以查看控制器A.

我已经尝试通过在返回true之前调用shouldPerformSegue(withIdentifier)末尾的以下内容从导航堆栈中删除视图控制器B以允许segue继续:

self.navigationController?.viewControllers.remove(at: index)
Run Code Online (Sandbox Code Playgroud)

如果我正确阅读文档,要删除的视图控制器的索引对应于以下内容:

The root view controller is at index 0
The back view controller is at index n-2
The top view controller is at index n-1
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有任何运气让它正常工作.我确定我做错了什么,但我不确定还有什么可以尝试的.谁能指出我正确的方向?谢谢!

uiviewcontroller uinavigationcontroller ios swift

1
推荐指数
1
解决办法
7476
查看次数