Question

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?

Was it helpful?

Solution

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];
}

OTHER TIPS

In the UICollectionViewController you can do

UISplitViewController *splitVC = (UISplitViewController *)self.parentViewController;
    splitVC.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top