如何在一种情况下推送视图控制器,而在另一种情况下以模式方式呈现它?

问题描述 投票:0回答:1

我有一个视图控制器(VC3),如果要通过一个屏幕(VC1)访问,我想push,但是如果要从另一个屏幕(VC2)访问,则要模态]显示它。目标视图控制器(VC3)位于其自己的情节提要中,并嵌入在UINavigationController中(我认为在此非常重要)。

在VC1的prepare(for segue)中,我有这个:

 if let nav = segue.destination as? UINavigationController {
     let destinationViewController = nav.topViewController as! LiftsViewController
     destinationViewController.delegate = self
   }

这将以模态形式显示目标视图控制器(VC3),这是我想要的。

从VC2中,通过点击表视图中的一个单元格可以访问视图控制器(VC3),所以我希望它被[[pushed

。但是在VC2的prepare(for segue)中,我具有与上面相同的代码,因为,好吧,我正在选择UINavigationController中的同一视图控制器。我看过很多线程,这些线程解决了推送vc或以模态方式呈现它们,但是找不到任何答案可以解决如何使用同一vc的问题。

谢谢。

我有一个视图控制器(VC3),如果要通过一个屏幕(VC1)访问,我想按一下,但是如果从另一个屏幕(VC2)访问,则要模态显示它。目标视图控制器(VC3)位于其上...

swift segue uistoryboardsegue
1个回答
0
投票
在这种情况下,我们不要使用segue并以编程方式推送/展示您的VC。

let vc3 = (UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LiftsViewController") as? LiftsViewController)! vc3.delegate = self

© www.soinside.com 2019 - 2024. All rights reserved.