确定控制器的类型 - MonoTouch

时间:2011-08-19 11:51:31

标签: xamarin.ios mpmovieplayercontroller

我需要找出当前应用程序中最顶层的控制器类型。

UIApplication.SharedApplication.KeyWindow.Subviews.Last().GetType()

返回UIView。我知道当你使用AddSubview()方法时,你传递的是View,而不是Controller。 Objective-C有IsKindOfClass方法,但我真正尝试做的是当用户按下home按钮时,如果电影播放器​​控制器在顶部,我想解雇它。据我所知,我唯一能做到这一点的地方就是应用代表中的OnResignActivation()方法。

提前谢谢你,

干杯...

1 个答案:

答案 0 :(得分:1)

“最顶层”是什么意思?如果你在谈论模态显示的控制器,你应该真正知道什么是最重要的,因为你正在呈现控制器。 : - )

因此,您可以保留对当前正在呈现的控制器的引用(例如,在AppDelegate中)。然后你会知道你在展示什么。

您还可以检查呈现视图控制器ModalViewController属性。它将引用当前以模态方式呈现的控制器(如果没有则为NULL)。 然后,您可以查看if(oMyController.ModalViewController is MPMoviePlayerController) { /* do something, like dismissal */}

但要解雇一个模态控制的控制器,你甚至不必知道它是什么。只需调用呈现控制器的DismissModalViewControllerAnimated(bool)方法,任何以模态方式显示的内容都将消失。