UIPopupControllerで遊んでみたかったのですが、ポップオーバーがいつ終了するかを検出できないことがわかりました。私の手順:
1。XCodeから例を作成します([ファイル]->[新しいプロジェクト]->[ユーティリティアプリケーション])2。MainViewController.h
に追加しますUIPopoverControllerDelegate
#import "FlipsideViewController.h"
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate,UIPopoverControllerDelegate>
@property (strong, nonatomic) UIPopoverController *flipsidePopoverController;
- (IBAction)showInfo:(id)sender;
@end
- MainViewControllerの場合:
-(IBAction)showInfo:(id)sender {{ if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ FlipsideViewController * controller = [[FlipsideViewController alloc] initWithNibName:@ "FlipsideViewController" bundle:nil]; controller.delegate = self; controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [自己presentModalViewController:コントローラーアニメーション:YES]; } そうしないと { if(!self.flipsidePopoverController){ FlipsideViewController * controller = [[FlipsideViewController alloc] initWithNibName:@ "FlipsideViewController" bundle:nil]; controller.delegate = self; self.flipsidePopoverController.delegate = self self.flipsidePopoverController = [[UIPopoverController alloc] initWithContentViewController:controller]; } if([self.flipsidePopoverController isPopoverVisible]){ [self.flipsidePopoverController dismissPopoverAnimated:YES]; } そうしないと { [self.flipsidePopoverController presentPopoverFromBarButtonItem:sender permitArrowDirections:UIPopoverArrowDirectionAnyアニメーション:YES]; } } } -(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {{ NSLog(@ "OLOLO"); }
しかし、どこかをタップしてポップオーバーが消えると、コンソールにNSLogメッセージが表示されません。私は何が間違っているのですか?