我的视图控制器是否在窗口层次结构中?

4

有没有办法检查MyViewController是否在窗口层次结构中? 我想知道是否可以从它显示一个UIAlertController

var alert = UIAlertController(title: "Hello", message: "Just for fun", preferredStyle: UIAlertControllerStyle.Alert)
MyViewController.presentViewController(alert, animated: true, completion: nil)

每个屏幕上的视图控制器都必须在窗口层次结构中吗?您可以使用视图控制器的实例来呈现警报,而不是使用类,这样您就会知道哪个视图控制器是活动的。 - Sandeep
1个回答

12
视图控制器的view属性会在其在层次结构中时设置其window属性。
if MyViewController.view.window != nil {
    // In the window hierarchy
}

这个解决方案不起作用!我知道 controller.view.window 不为空,但是仍然出现了错误 Attempt to present <UIViewController> on <UIAlertController> whose view is not in the window hierarchy! - Vergiliy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接