在USplitView iOS 5.1中加载和隐藏主视图



我在谷歌上搜索了很长时间,但没有得到解决方案,在iOS 5.1中,主视图在右滑动时出现,在左滑动时消失。

我想加载主视图上的按钮点击细节视图,怎么可能?

下面的代码对我来说是有效的,主视图隐藏了,但主视图的黑屏大小仍然保留在主视图的位置。

- (void)hideMaster:(BOOL)hide {
AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
UISplitViewController* spv = appDelegate.splitViewController;
spv.delegate=self;
self.hiddenMaster= hide;
[spv willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
[spv.view setNeedsLayout];     
}

- (BOOL)splitViewController:(UISplitViewController*)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation {
NSLog(@"Spv: I do %@show the master", (self.hiddenMaster?@"not ":@""));
return self.hiddenMaster;
}

提前感谢

据我所知,这样做的标准方法是:

  1. 在应用程序委派文件中,您需要将其中一个初始视图控制器设置为UISplitViewControllerDelegate。如果你不在这里这样做,如果你以纵向启动应用程序,你就不会得到第一个按钮。例如:

    UINavigationController *masterNavigationController = [self.splitViewController.viewControllers objectAtIndex:0];
    MyMasterVC *master = [self.masterNavigationController.viewControllers objectAtIndex:0];
    self.splitViewController.delegate = master;
    
  2. 在MyMasterVC.h中,通过修改接口将自己声明为<UISplitViewControllerDelegate>,例如:

    @interface MyMasterVC : UIViewController <UISplitViewControllerDelegate>

  3. 在MyMasterVC.m中,您需要实现UISplitViewControllerDelegate的各种方法,这些方法在苹果的文档中有描述

隐藏和显示视图控制器的方法会为您提供一个UIBarButtonItem,然后您必须将其添加到详细信息视图控制器或从中删除(例如,在UIToolBar或UINavigationBar中)。

如果你在处理这个问题上有问题,斯坦福大学优秀的Paul Hegarty在iTunesU的一次讲座中就很好地介绍了这一点(2010年或2011年秋季-记不清了)。你真的应该看看。iOS5.1改变了MasterVC的呈现方式;popover";当然,但我认为所描述的方法仍然有效。现在是课程的早期阶段,可能是第5讲、第6讲或第7讲之类的。我认为它被称为拆分视图,或iPad拆分视图或类似的。

编辑:这是第7讲,叫做:"UIToolbar和iPad应用程序";

相关内容

  • 没有找到相关文章

最新更新