如何以编程方式设置转换样式并连接到情节提要UIViewController



当我执行以下操作时,我看不到对我设置的转换样式的任何更改。我尝试过在代码中更改它,也尝试过直接在情节提要视图控制器上设置值。

let vc =  UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EditorViewController") as! EditorViewController
vc.modalPresentationStyle = .fullScreen
vc.modalTransitionStyle = .partialCurl
self.show(vc, sender: self)

但是,当我执行以下操作时,转换样式会起作用,但我没有与视图控制器关联的情节提要视图,并且会引发错误。

let vc =  EditorViewController()
vc.modalPresentationStyle = .fullScreen
vc.modalTransitionStyle = .partialCurl
self.show(vc, sender: self)

我认为问题是因为您使用的是show()而不是present()

我试着复制你的场景,当没有UINavigationController时,它可以与show函数一起工作。我猜UINavigationController会接管转换的发生方式。然而,当我尝试这样做时,这两个场景都没有达到所需的动画和全屏效果。如果我没有UINavigationController,那么这两种情况都有效。所以我不太确定错误是什么,但我认为应该使用present()函数。

最新更新