My app has a UICollectionViewController in its master view controller. When the device is on portrait orientation, the user can swipe the screen to reveal the master view.

When a collection cell is selected, the detail view is updated with new data. Now I'd like the master view to hide automatically at the same time. Is it possible?

有帮助吗?

解决方案

Found the answer at the Apple Developers Forum

First make sure that the detail view controller has a reference to the popover view:

- (void)splitViewController:(UISplitViewController *)svc
    willHideViewController:(UIViewController *)aViewController
         withBarButtonItem:(UIBarButtonItem *)barButtonItem
      forPopoverController:(UIPopoverController *)pc {
    //Grab a reference to the popover
    self.popover = pc;
}

Then dismiss the popover when updating the detail view:

if (_popover != nil) {
    [_popover dismissPopoverAnimated:YES];
}

其他提示

In the UICollectionViewController you can do

UISplitViewController *splitVC = (UISplitViewController *)self.parentViewController;
    splitVC.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top