我从很长时间开始使用Google进行搜索,但未获得解决方案,在iOS 5.1中,Master View出现在右滑动上,而消失在左滑动上。
我希望在“详细信息”视图的按钮单击上加载主视图,这怎么可能?
下面的代码为我工作,隐藏了主视图,但是保留了主视图的黑屏尺寸。
- (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;
}
提前致谢
最佳答案
据我了解,执行此操作的标准方法是:
在您的应用程序委托文件中,您需要将一个初始View Controller设置为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的各种方法,这些方法described here in Apple's documentation
隐藏和显示视图控制器的方法为您提供了一个UIBarButtonItem,然后您必须将其添加到“细节视图控制器”中或从其中删除(例如,在UIToolBar或UINavigationBar中)。
如果您在处理此问题时遇到困难,那么斯坦福大学出色的保罗·黑格蒂(Paul Hegarty)会在iTunesU的一篇讲座中对此进行很好的介绍(2010年秋季或2011年-不记得了)。你真的应该看看。在此过程中,iOS5.1已从严格的“弹出”方式改变了MasterVC的呈现方式,但我认为所描述的方法仍然可以使用。这是课程的早期,可能是第5或6或7堂课或类似的课程。我认为这称为分割视图,或iPad分割视图或类似名称。
编辑:
第7堂课,名为:“ UIToolbar和iPad Apps”
关于iphone - 在USplitView iOS 5.1中加载和隐藏主 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12706606/