UIPopoverPresentationController on iPhone doesn't produce popover

后端 未结 4 1513
孤独总比滥情好
孤独总比滥情好 2020-11-27 15:37

I\'m trying to implement the new UIPopoverPresentationController in my iPhone app (using Objective C). What I want is a simple popover with a tableview that ema

4条回答
  •  攒了一身酷
    2020-11-27 16:21

    To present UIModalPresentationStyle popover from iPhone/iPad:

    -(void)menuButtonPressed:(UIButton *)sender {
    
        self.menuPopoverController = [[DownloadMenuPopoverController alloc] initWithStyle:UITableViewStylePlain];
        self.menuPopoverController.delegate = self;
    
        self.menuPopoverController.modalPresentationStyle = UIModalPresentationPopover;
        self.menuPopoverController.popoverPresentationController.delegate = self;
        self.menuPopoverController.preferredContentSize = CGSizeMake(250,80);
        self.menuPopoverController.popoverPresentationController.sourceRect = sender.frame;// rect to show view
        self.menuPopoverController.popoverPresentationController.sourceView = self.view;
    
        UIPopoverPresentationController *popPC = self.menuPopoverController.popoverPresentationController;
        popPC.permittedArrowDirections = UIPopoverArrowDirectionAny;
        popPC.delegate = self;
        [self presentViewController:self.menuPopoverController animated:YES completion:nil];
    
    }
    
    #pragma mark - UIPresentationController Delegate methods
    
    - (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller traitCollection:(UITraitCollection *)traitCollection {
        return UIModalPresentationNone;
    }
    
    - (UIViewController *)presentationController:(UIPresentationController *)controller viewControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)style {
        UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller.presentedViewController];
        return navController;
    }
    

提交回复
热议问题