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メッセージが表示されません。私は何が間違っているのですか?