【问题标题】:Detecting of popover dismiss检测弹出框关闭
【发布时间】:2012-05-06 08:35:07
【问题描述】:
我想玩 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];
} 别的 {
如果(!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.flipsidePopoverControllerdismissPopoverAnimated:YES];
} 别的 {
[self.flipsidePopoverController presentPopoverFromBarButtonItem:sender allowedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}
}
-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
NSLog(@"OLOLO");
}
但是当我点击某个地方并且弹出框消失时,控制台中没有 NSLog 消息。
我做错了什么?
【问题讨论】:
-
您正在设置委托之前您实例化弹出控制器。也就是说,设置delegate的时候不存在
标签:
ios
uipopovercontroller