我在谷歌上搜索了很长时间,但没有得到解决方案,在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;
}
提前感谢
据我所知,这样做的标准方法是:
-
在应用程序委派文件中,您需要将其中一个初始视图控制器设置为UISplitViewControllerDelegate。如果你不在这里这样做,如果你以纵向启动应用程序,你就不会得到第一个按钮。例如:
UINavigationController *masterNavigationController = [self.splitViewController.viewControllers objectAtIndex:0]; MyMasterVC *master = [self.masterNavigationController.viewControllers objectAtIndex:0]; self.splitViewController.delegate = master;
-
在MyMasterVC.h中,通过修改接口将自己声明为
<UISplitViewControllerDelegate>
,例如:@interface MyMasterVC : UIViewController <UISplitViewControllerDelegate>
-
在MyMasterVC.m中,您需要实现UISplitViewControllerDelegate的各种方法,这些方法在苹果的文档中有描述
隐藏和显示视图控制器的方法会为您提供一个UIBarButtonItem,然后您必须将其添加到详细信息视图控制器或从中删除(例如,在UIToolBar或UINavigationBar中)。
如果你在处理这个问题上有问题,斯坦福大学优秀的Paul Hegarty在iTunesU的一次讲座中就很好地介绍了这一点(2010年或2011年秋季-记不清了)。你真的应该看看。iOS5.1改变了MasterVC的呈现方式;popover";当然,但我认为所描述的方法仍然有效。现在是课程的早期阶段,可能是第5讲、第6讲或第7讲之类的。我认为它被称为拆分视图,或iPad拆分视图或类似的。
编辑:这是第7讲,叫做:"UIToolbar和iPad应用程序";