使用情节提要(XCode 4.2)在Master Detail应用程序中隐藏MasterViewController



我使用Master-Detail Templte和故事板创建了新的应用程序。我想为用户提供在横向模式下隐藏/显示主视图控制器的便利。我在网上发现了一些例子,但没有一个是使用故事板和主细节模板与导航控制器。

我已经实现了splitviewcontrollerwillHideViewController&willShowViewController,它可以帮助我在纵向模式下隐藏主视图控制器。我在应用程序代理的didFinishLaunchingWithOptions方法中使用以下代码来初始加载视图,

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

如果你能给我指明正确的方向,我将不胜感激。

谢谢,Tapan Desai

主视图显示在popover中,popover可用于控制主视图的可见性。

所以。。。遵循以下步骤:

1) 创建一个属性来保存popoverController

@property (nonatomic, strong) UIPopoverController *pc;

2) 捕获SplitViewController上的popoverController将隐藏代理调用

-(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];
    }

相关内容

  • 没有找到相关文章

最新更新