我在iPad应用程序中使用Master-Detail应用程序模板
我有包含视频列表的主视图。选择任何列表项时,它会在详细视图上开始播放该项目的视频
我正在使用MPMoviePlayerController播放视频。
如果我按全屏图标,播放器应该填满整个屏幕(主视图和详细视图,而不仅仅是详细视图)。
我怎么能这样做?请帮忙!
答案 0 :(得分:10)
您可以使用[{1}}
的委托来隐藏或显示MasterViewcontroller
UISplitViewController
<强>更新: - 强>
示例代码: -
在你的 DetailViewController.h 类中设置一个- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem;
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc;
值
BOOL
并按照方法执行此操作 .M 类
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>
@property (nonatomic) BOOL IShide;
当您点击全屏事件-(void)hideMaster:(id)hideState
{
_IShide=!self.IShide;
[self.splitViewController.view setNeedsLayout];
self.splitViewController.delegate = nil;
self.splitViewController.delegate = self;
[self.splitViewController willRotateToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
//also put your `MPMoviePlayerController` Fullscreen Method here
}
#pragma mark - Split view
-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return self.IShide;
}
- (void)viewDidLoad
{
UIBarButtonItem *Fullscreen = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"FullScreen", nil) style:UIBarButtonItemStylePlain target:self action:@selector(hideMaster:)];
[self.navigationItem setRightBarButtonItem:Fullscreen animated:YES];
[super viewDidLoad];
}
时,使用此事件将此代表称为隐藏并显示MasterViewController。
代码输出
答案 1 :(得分:0)
在这里查看我的答案:https://stackoverflow.com/a/20483347/1712892。接受的答案类似于我用来完成此任务的方式。但我一直希望它更加生动。这是我的动画版。