/// lets present vc2 from vc 1
let vc1 = UIViewController()
let vc2 = UIViewController()
vc1.present(vc2, animated: true)
/// presentingViewController of vc2 will be vc1, and it will dismiss if presented modally.
vc2.presentingViewController?.dismiss(animated: true)
4条答案
按热度按时间lf3rwulv1#
除了这里的其他答案你还可以用
编辑:
您可以使用UINavigationController来控制ViewController的堆栈。
ars1skjm2#
这在一定程度上取决于您的导航方式。如果您正在使用导航控制器,则可以访问视图控制器数组并直接对其进行操作。例如,
如果您使用segues,则可以在移至C之前,先回到viewController A。
您也可以使用这个以其他方式操作viewController堆栈。
您也可以要求视图控制器使用self.dismiss(动画:真)。
如果你感兴趣,我发现协调器模式是一个很好的方法来解决很多导航问题是iOS。
如果你想发布一些代码,我可以为你仔细看看。
to94eoyn3#
您可以使用UIViewController的presentingViewController属性来访问呈现此VC的VC。这样您就可以取消先前的VC。
yrefmtwq4#
如果使用导航控制器: