如何使用方向管理从UVIew添加UIViewController

时间:2013-05-23 15:18:44

标签: ios uiviewcontroller orientation mpmovieplayercontroller

我正在创建自定义MPMoviePlayer。

对于全屏管理,MPMoviePlayerController的行为方式如下:

- (void)setFullscreen:(BOOL)fullscreen animated:(BOOL)animated;

我想做同样的事情,但在所有UIViewController上添加了UIView。 但是,当使用UIViewController时,不会管理方向

我目前的代码:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[[appDelegate window] addSubview:myViewController.view];

我想使用UIViewController管理方向。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

setFullscreen:YES...实例上使用MPMoviePlayerController时,它将停止使用您提供的视图堆栈,而是使用它自己的(直接在窗口上)。

换句话说;

MPMoviePlayerController的{​​{1}} 实例在切换到全屏模式后不会一直坚持提供的父视图。只有在使用非全屏模式时才会这样做。

要解决该功能,您需要实现自己在全屏模式和嵌入模式之间切换的方法。听起来很重要,但实际上相当微不足道。

只需在viewController中创建一个类似于此的方法。

以下假设:

  • 你的viewController处理整个屏幕
  • 您的viewController有一个包含嵌入式指标的属性(类型为view
  • 该viewController中的CGRect实例是 叫MPMoviePlayerController

我跳过任何可能的动画让你自己实现。您也可以在此方法中切换控件样式以模仿原始行为。

player

答案 1 :(得分:0)

是的,我可以!

我的ViewController“myViewController”被添加到具有方向管理的所有视图中:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *rootViewController = appDelegate.window.rootViewController;
[rootViewController presentViewController:myViewController animated:NO completion:nil];