我需要找出当前应用程序中最顶层的控制器类型。
UIApplication.SharedApplication.KeyWindow.Subviews.Last().GetType()
返回UIView。我知道当你使用AddSubview()
方法时,你传递的是View,而不是Controller。
Objective-C有IsKindOfClass方法,但我真正尝试做的是当用户按下home按钮时,如果电影播放器控制器在顶部,我想解雇它。据我所知,我唯一能做到这一点的地方就是应用代表中的OnResignActivation()
方法。
提前谢谢你,
干杯...
答案 0 :(得分:1)
“最顶层”是什么意思?如果你在谈论模态显示的控制器,你应该真正知道什么是最重要的,因为你正在呈现控制器。 : - )
因此,您可以保留对当前正在呈现的控制器的引用(例如,在AppDelegate中)。然后你会知道你在展示什么。
您还可以检查呈现视图控制器ModalViewController
属性。它将引用当前以模态方式呈现的控制器(如果没有则为NULL)。
然后,您可以查看if(oMyController.ModalViewController is MPMoviePlayerController) { /* do something, like dismissal */}
。
但要解雇一个模态控制的控制器,你甚至不必知道它是什么。只需调用呈现控制器的DismissModalViewControllerAnimated(bool)
方法,任何以模态方式显示的内容都将消失。