在Master-Detail应用程序中使用Storyboard(XCode 4.2)隐藏MasterViewController
问题描述:
我已经使用Master-Detail Templte与storyboard创建了新的应用程序。我想给用户设施他们可以在景观模式下隐藏/显示主视图控制器。我在网上发现了一些例子,但没有一个在导航控制器中使用故事板和Master-Detail模板。在Master-Detail应用程序中使用Storyboard(XCode 4.2)隐藏MasterViewController
我已经实现了splitviewcontroller willHideViewController & willShowViewController帮助我在纵向模式下隐藏主视图控制器。我使用下面的代码在应用程序委托的didFinishLaunchingWithOptions方法intially加载意见,
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
我想如果并欣赏你可以点我正确的方向。
谢谢, 塔潘德赛
答
主视图被呈现在酥料饼和酥料饼可用于控制主的可见性。
所以......请按照下列步骤操作:
1)创建一个属性来保持popoverController
@property (nonatomic, strong) UIPopoverController *pc;
2)捕获popoverController上SplitViewController willHide委托调用
-(void) splitViewController:(UISplitViewController *)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)pc
{
barButtonItem.title = @"Menu";
id detailViewController = [self.splitViewController.viewControllers lastObject];
[detailViewController setSplitViewBarButtonItem:barButtonItem];
self.pc = pc; //poppver controller
}
3)最后只需使用pc var关闭弹出框
if (self.pc) {
[self.pc dismissPopoverAnimated:YES];
}