Dismissing iPad UIPopoverController when BarButtonItem is pushed while it's open

后端 未结 7 1182
闹比i
闹比i 2020-12-14 11:36

Using a split view on the iPad, I have the following code:

- (void) splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController         


        
7条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-14 12:28

    The code I used to show the popover in RootViewController.m:

    - (IBAction) addCategory:(id)sender {
      AddCategoryViewController *content = [[AddCategoryViewController alloc] init];
      UIPopoverController *aPopover = [[UIPopoverController alloc]
                                       initWithContentViewController:content];
    
      aPopover.delegate = self;
    
      // Store the popover in a custom property for later use.
      self.addCategoryPopover = aPopover;
      addCategoryPopover.delegate = self;
      [aPopover release];
      [content release];
    
      [addCategoryPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
    }
    

    This I used to try and dismiss it from another class:

    -(IBAction)saveAddCategory:(id)sender {
      rootViewController = [[RootViewController alloc] init];
      [rootViewController dismissPopover];
    }
    

    My dismissPopover function looks like:

    - (void) dismissPopover {
      if ([self.addCategoryPopover isPopoverVisible]) {
        [self.addCategoryPopover dismissPopoverAnimated:YES];
      }
      if (addCategoryPopover.popoverVisible == YES) {
        [addCategoryPopover dismissPopoverAnimated:YES];
      }
    }
    

提交回复
热议问题