在 SplitViewController 中从 DetailViewController 隐藏 MasterViewController

Hide MasterViewController from DetailViewController in a SplitViewController

我设置了一个 SplitViewController,其中包含一个 DetailViewController 和一个 MasterViewController。 DetailViewController 包含一个地图,我想在地图上放置一个按钮,用于折叠和展开 MasterViewController。在 Apple 的 App Store 应用程序中就像这样:

点击按钮然后给出:

关于如何实现类似效果的任何想法?注意我不想关闭顶部工具栏,只是 MasterViewController。谢谢!

解决方案

感谢 Pravin,我在 IBAction 中的最终解决方案是:

if (self.splitViewController.preferredDisplayMode == UISplitViewControllerDisplayModePrimaryHidden) {
    self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
} else {
    self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}

[UIView animateWithDuration:0.5 animations:^ {
     [self.splitViewController.view layoutIfNeeded];
 }];

隐藏母版视图

AppDelegate * appDelegateObj = (AppDelegate *)[UIApplication sharedApplication].delegate;
        UISplitViewController * splitView = appDelegateObj.splitViewObj;
        splitView.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
        [UIView animateWithDuration:1.0 animations:^
         {
             [spv.view layoutIfNeeded];
         }];

show master view


AppDelegate * appDelegateObj = (AppDelegate *)[UIApplication sharedApplication].delegate;
        UISplitViewController * splitView = appDelegateObj.splitViewObj;
        splitView.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
        [UIView animateWithDuration:1.0 animations:^
         {
             [spv.view layoutIfNeeded];
         }];

希望对你有用!