【问题标题】:Hide MasterViewController in Master-Detail Application using Storyboard (XCode 4.2)使用 Storyboard (XCode 4.2) 在 Master-Detail 应用程序中隐藏 MasterViewController
【发布时间】:2012-02-01 17:03:50
【问题描述】:

我使用带有情节提要的 Master-Detail 模板创建了新应用程序。我想为用户提供设施,让他们可以在横向模式下隐藏/显示主视图控制器。我在网上找到了几个例子,但没有一个使用故事板和主从模板和导航控制器。

我已经实现了 splitviewcontroller willHideViewController 和 willShowViewController 这可以帮助我在纵向模式下隐藏主视图控制器。我在 App Delegate 的 didFinishLaunchingWithOptions 方法中使用下面的代码来初始加载视图,

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

如果你能指出正确的方向,我会很高兴。

谢谢, 塔潘德赛

【问题讨论】:

    标签: master-detail xcode-storyboard


    【解决方案1】:

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

    所以...请按照以下步骤操作:

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

    @property (nonatomic, strong) UIPopoverController *pc;
    

    2) 捕获SplitViewController willHide 委托调用上的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 关闭弹出框

     if (self.pc) {
            [self.pc dismissPopoverAnimated:YES];
        }
    

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2012-01-10
      • 2013-01-07
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 2017-07-13
      • 2013-03-14
      相关资源
      最近更新 更多