单击视图应隐藏/取消隐藏DetailView上的菜单按钮

时间:2013-05-30 07:10:56

标签: ios ipad uisplitviewcontroller

我第一次在iPad上使用SplitView。我已经使用UISplitViewController的默认行为实现了应用程序。 但现在我需要实现一些不同的。我们可以在纵向模式下具有相同的布局,与横向模式相同意味着在主视图的左半部分和右半部分将具有细节视图。 MasterView应隐藏/取消隐藏DetailView上的单击菜单按钮(左侧按钮按钮)。当Master视图显示在左侧时,DetailView应占用iPad的一半空间(Portriate Mode),当用户点击菜单按钮隐藏主视图时,DetailView应向左侧滑动并将全部显示iPad空间(人像模式)。示例应用程序Youtube iOS iPad App。the split view in portrait mode should show like this. And on click on "Hide Master" button Master View should slide to left and disappeared and Detail View will take whole space.

3 个答案:

答案 0 :(得分:1)

快速浏览一下文档,可以看出UISplitViewControllerDelegate-splitViewController:shouldHideViewController:inOrientation:方法。那会做你想要的吗?

答案 1 :(得分:0)

这是一个good example,它可以为您提供您正在搜索的内容,我希望它对您有所帮助。 请求告诉我^ _ ^

答案 2 :(得分:0)

调用这些方法。 根据您的要求。

-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
    self.masterBarButtonItem = barButtonItem;
    self.masterPopoverController = pc;

    barButtonItem.title = NSLocalizedString(@"Master", @"Master");

    [self.currentDetailController.navigationItem setLeftBarButtonItem:self.masterBarButtonItem animated:NO];
}

/* forward the message to the current detail view
 * all detail views must implement UISplitViewControllerDelegate
 */
-(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    self.masterBarButtonItem = nil;
    self.masterPopoverController = nil;

    [self.currentDetailController.navigationItem setLeftBarButtonItem:nil animated:NO];

}