【问题标题】:Fill master and detail view in full screen mode of iPad在 iPad 的全屏模式下填充主视图和详细视图
【发布时间】:2013-08-15 00:41:39
【问题描述】:

我在 iPad 应用程序中使用主从应用程序模板。
我有包含视频列表的主视图。选择任何列表项时,它会开始在详细视图上播放该项目的视频。
我正在使用 MPMoviePlayerController 播放视频。
如果我按下全屏图标,播放器应该填满整个屏幕(主视图和详细视图,而不仅仅是详细视图)。
我怎么能这样做?请帮忙!

【问题讨论】:

  • 当您在 e 视频上选择时,您的主视图必须被移除。对吗?所以很明显在整个屏幕上显示全屏..
  • @Myaaoonn 这不是删除主视图的正确解决方案
  • 不知道为什么这被否决了?似乎是一个合理的问题。

标签: ios ipad mpmovieplayercontroller master-detail


【解决方案1】:

您可以使用UISplitViewController 的委托隐藏或显示MasterViewcontroller

- (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;

更新:-

示例代码:-

在你的 DetailViewController.h 类中设置一个 BOOL

@interface DetailViewController : UIViewController <UISplitViewControllerDelegate>

@property (nonatomic) BOOL  IShide;

并在你的 .M 类中执行以下方法

-(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];

}

当您单击 MPMoviePlayerController 的全屏事件时,使用此事件调用此代表,就像您隐藏和显示 MasterViewController 一样。

代码输出为

【讨论】:

  • 一旦您将设备旋转到纵向,这会在 iOS8 中引起一些奇怪的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多