我使用Master-Detail Templte和storyboard创建了新的应用程序。我想给用户设施他们可以在横向模式下隐藏/显示主视图控制器。我在网上发现了一些例子,但没有一个使用故事板和Master-Detail模板和导航控制器。
我已经实现了splitviewcontroller willHideViewController& willShowViewController,它帮助我在纵向模式下隐藏主视图控制器。我在App Delegate的didFinishLaunchingWithOptions方法中使用下面的代码来加载视图,
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
如果你能指出正确的方向,我会很高兴。
谢谢, Tapan Desai
答案 0 :(得分:0)
主视图以弹出框形式显示,弹出窗口可用于控制母版的可见性。
所以......按照以下步骤操作:
1)创建一个属性来保存popoverController
@property (nonatomic, strong) UIPopoverController *pc;
2)在SplitViewController上捕获popoverController 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来关闭popover
if (self.pc) {
[self.pc dismissPopoverAnimated:YES];
}