Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Ios 仅关闭显示的视图控制器,而不是整个导航堆栈_Ios_Swift_Uinavigationcontroller_Presentmodalviewcontroller_Dismissviewcontroller - Fatal编程技术网

Ios 仅关闭显示的视图控制器,而不是整个导航堆栈

Ios 仅关闭显示的视图控制器,而不是整个导航堆栈,ios,swift,uinavigationcontroller,presentmodalviewcontroller,dismissviewcontroller,Ios,Swift,Uinavigationcontroller,Presentmodalviewcontroller,Dismissviewcontroller,我有一个选项卡栏控制器。因为第一个选项卡是导航控制器。我们把它叫做控制器A。然后我在它上面推另一个视图控制器。我们把它叫做控制器B。 之后,我将从视图控制器B演示视图控制器C。现在我只想关闭视图控制器B 选项卡栏-A(导航控制器的根vc)->推送vc->B->显示vc->C A到B将使用self.navigationController.pushViewController(动画:true,完成:nil) B到C是这样的 let vc=CViewController() vc.modalPres

我有一个选项卡栏控制器。因为第一个选项卡是导航控制器。我们把它叫做控制器A。然后我在它上面推另一个视图控制器。我们把它叫做控制器B。 之后,我将从视图控制器B演示视图控制器C。现在我只想关闭视图控制器B

选项卡栏-A(导航控制器的根vc)->推送vc->B->显示vc->C

A到B将使用self.navigationController.pushViewController(动画:true,完成:nil)

B到C是这样的
let vc=CViewController()
vc.modalPresentationStyle=.fullScreen
self.present(vc,动画:true,完成:nil)

现在当我使用
self.disclose(动画:true,完成:nil)
在视图控制器C中。它返回到根视图控制器,即vc A。我希望它返回到vc B


经过一番思考,我复制了您试图做的事情,并发现问题不在于调用Disclease。这就是您最初调用视图控制器的方式。把你的代码从B改为C

而不是:

设vc=CViewController()

vc.modalPresentationStyle=.fullScreen

self.present(vc,动画:true,完成:nil)

使用:

您必须在序列图像板中指定视图控制器的标识符(序列图像板ID)

现在,当您调用self.disclose()时,它应该只关闭C。
我已经用Xcode 11.1在我的计算机上测试了这个问题。

当你调用self.disclease时,你不是在C上调用disclease,而是在B上调用disclease。你试过popViewController吗?我已经用vc C编写了disclease代码。pop view控制器不起作用,因为C是以模式显示的,而不是按方式显示的。我假设你试过“vc.disclease()”而不是self.disclease()?是的,已经试过了。你可以添加故事板的屏幕截图吗?请参阅:关于推送视图控制器的内容。我的问题是如何表达。
let sb : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateViewController(identifier: "C")
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)