繁体   English   中英

有没有办法知道UIViewController是否已经以模态方式呈现和解散?

[英]Is there a way to know if a UIViewController has been presented and dismissed modally ?

有没有办法知道UIViewController是否已经以模态方式呈现和解散?

就像是:

  • hasBeenPresentedModally
  • hasBeenDismissedModally

谢谢

没有内置的东西,但视图控制器可以在接收到viewDidAppear和/或viewWillDisappear检查它是否有一个parentViewController ,因为根据Apple的文档 (重点添加):

父视图控制器与导航,选项卡栏和模态视图控制器层次结构相关。 在每个层次结构中,父级是负责显示当前视图控制器的对象。 如果您将视图控制器用作独立对象(即不是视图控制器层次结构的一部分),则此属性中的值为nil。

如果有,那么它可以设置合适的标志以供将来参考。

请注意,以模态呈现不同于真正的模态。 例如,在iPad上你可能会将一个控制器放在UIPopoverController ,这样控制器就不会以模态方式呈现,但是它可能会以模态方式呈现另一个控制器。 因此,第二个控制器以模态方式呈现,但本身并不是模态对话,因为 - 如果程序以其他方式适当设置 - 用户可以完全忽略弹出窗口。

检查你的UIViewController的parentViewController属性是否为nil 如果该财产是nil那么它被解雇,否则它被呈现。

注意:UITableViewController的childViewController的parentViewController属性也不是nil ,你还应该确保parentViewController不是UITableViewController。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM