iOS - 向应用程序窗口添加导航栏

时间:2014-08-19 10:09:41

标签: ios objective-c uiview uinavigationbar kaltura

我有一个Kaltura video player的应用,当设备旋转到横向时,会切换到全屏模式。 基本上,应用程序的主VC有一个容器视图,其中包含一个tableview和一个视频播放器的视图,我称之为:

[self.containerView addSubview:playerViewController.view];

在我的" viewDidAppear"添加播放器的方法。当设备切换到横向模式时,我称之为:

[[[UIApplication sharedApplication] delegate].window addSubview:playerViewController.view];

让玩家进入整个屏幕,当设备切换回纵向模式时,我再次调用它:

[self.containerView addSubview:playerViewController.view];

这样可以正常工作,但当设备处于横向状态时(这可能是因为播放器已添加到应用程序中),这也会隐藏应用程序的导航栏。

我想在设备处于横向模式时显示导航栏,但由于某种原因,当设备切换到横向模式时我使用的代码行是唯一一个实际将玩家放在整个模式上的代码行屏幕并将其向侧面旋转。

我有什么方法可以在播放器上重新添加导航栏吗?或者也许将其作为应用程序窗口的一部分,以便它不会隐藏在播放器下面? 如果您需要我添加更多解释或代码,请告诉我。 谢谢!

解决!!!看到接受的答案

3 个答案:

答案 0 :(得分:1)

尝试在viewController中添加以下代码:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    [[self navigationController] setNavigationBarHidden:UIInterfaceOrientationIsPotrait(toInterfaceOrientation) animated:YES];

}

答案 1 :(得分:0)

您必须从其超级视图中删除该视图。

[playerViewController.view removeFromSuperview];

在添加为子视图之前。

答案 2 :(得分:0)

解决!!!

我最终创建了一个“调整大小播放器”方法,该方法只为播放器的视图设置新的宽度和高度参数。这样,每次设备更改其方向时,我都不需要重新添加子视图,导航栏也可以在横向模式下看到。

谢谢大家! :)