1

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

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

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

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

谢谢,塔潘德赛

4

1 回答 1

0

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

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

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];
    }
于 2013-03-14T19:44:46.643 回答