全景视图通知

问题描述 投票:0回答:3

我有一个弹出窗口。当此弹出窗口被消除时,我想得到通知。

有什么办法吗?

iphone iphone-sdk-3.0 uipopovercontroller
3个回答
6
投票

答案非常简单!

只要关闭弹出窗口,就会为您调用委托例程popoverControllerDidDismissPopover。

所以只需将此代码添加到您的代码中...

-(void)popoverControllerDidDismissPopover:
        (UIPopoverController *)popoverController
    {
    NSLog(@"a popover was dismissed! thank you stackoverflow!");
    }

好吗?如果您确实想防止将其关闭,也可以使用popoverControllerShouldDismissPopover。

((注意-在不寻常的情况下,您使用多个弹出窗口,只需在该例程中检查正在释放的弹出窗口即可。例如,如果[popoverController == myPostcodePopover) { }或其他内容。]

如果您不知道如何做,则解决方案几乎总是在您正在使用的类的可用委托中。

-----------别忘了这样做!

[无论何时使用任何委托,当然都必须将委托设置为“您”,

zipcodeEntryPopover.delegate = self;

-----------别忘了这样做!

[如果要使用这样的委托,则只需将其添加到在.h文件中声明该类的委托声明中。

因此,在您的.h文件中,您将看到类似这样的内容,

@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
                    UIAccelerometerDelegate,
                    thisDelegate,
                    thatDelegate>

((通常,其中有大量的系统代理和您自己创建的代理。)因此,您只需要为弹出式代理添加一个,因此...

@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
                    UIAccelerometerDelegate,
                    thisDelegate,
                    thatDelegate,
                    UIPopoverControllerDelegate>

应该这样做!


3
投票

[就像其他人说的那样,使用-(void)popoverControllerDidDismissPopover: (UIPopoverController *)popoverController,但是他们都错过了一个关键点;创建它时,不要忘记更改UIPopoverController的委托:

UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:datePicker];
popoverController.delegate = self;

0
投票

使用此委托方法

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

}
© www.soinside.com 2019 - 2024. All rights reserved.