popoverControllerDidDismissPopover不做我认为应该做的事 [英] popoverControllerDidDismissPopover NOT doing what I think it should

查看:135
本文介绍了popoverControllerDidDismissPopover不做我认为应该做的事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我认为当我在弹出窗口之外单击时,应调用方法popoverControllerDidDismissPopover.我知道在调用dismissPopoverAnimated时不会调用此函数.

So, I think that when I click outside of a popover, the method popoverControllerDidDismissPopover should be called. I know this isn't called when dismissPopoverAnimated is called.

我有一个简单的项目,我的安装程序显示了popoverControllerDidDismissPopover只是没有被调用:

I have a simple project that I have setup that shows popoverControllerDidDismissPopover just isn't called:

#import "ViewController.h"
#import "PopoverViewController.h"
@interface ViewController ()
{
PopoverViewController *controller;
UIPopoverController *popoverController;
}
@end
@implementation ViewController
@synthesize button;
- (IBAction)showPopover:(UIButton *)sender
{
if ([popoverController isPopoverVisible]) {
    [popoverController dismissPopoverAnimated:YES];
} else {
    CGRect popRect = CGRectMake(self.button.frame.origin.x,
                                self.button.frame.origin.y,
                                self.button.frame.size.width,
                                self.button.frame.size.height);
    [popoverController presentPopoverFromRect:popRect
                                       inView:self.view
                     permittedArrowDirections:UIPopoverArrowDirectionAny
                                     animated:YES];
   }
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
controller = [[PopoverViewController alloc] initWithNibName:@"PopoverViewController" bundle:nil];
popoverController = [[UIPopoverController alloc] initWithContentViewController:controller];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}


- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {

NSLog(@"Why am I never called!!!!");

}

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
return true;
}

@end

请告诉我我要去哪里或如何检测弹出窗口何时被排除.

Please tell me where I'm going wrong or how I can detect when a popover is dismissed.

整个项目在这里:

https://rapidshare.com/files/3182903825/PopoverDemo.zip

推荐答案

您永远不会将popoverControllerdelegate设置为self.

You never set the delegate for your popoverController to self.

_popoverController.delegate = self;

这篇关于popoverControllerDidDismissPopover不做我认为应该做的事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆