弹出视图通知

use*_*878 0 iphone iphone-sdk-3.0 uipopovercontroller

我有一个流行的视图.当这个popover被解雇时,我想得到通知.

有什么办法吗?

请帮帮我.

Fat*_*tie 6

答案非常简单!

每当解除弹出窗口时,都会为您调用委托例程popoverControllerDidDismissPopover.

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

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

好?如果你真的想要阻止它被解雇,你也可以使用popoverControllerShouldDismissPopover.

(注意 - 在不寻常的情况下,你正在使用多个popover,只需在该例程中检查哪一个被解雇.例如if(popoverController == myPostcodePopover){},或者其他什么.)

如果您不知道如何做某事,解决方案几乎总是在您正在使用的类的代理中.

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

无论何时使用任何委托,当然你必须将委托设置为"你",

zipcodeEntryPopover.delegate = self;
Run Code Online (Sandbox Code Playgroud)

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

如果您打算使用这样的委托,您只需将它添加到您在.h文件中声明该类的委托声明中.

所以,在你的.h文件中,你会有这样的东西,

@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
                    UIAccelerometerDelegate,
                    thisDelegate,
                    thatDelegate>
Run Code Online (Sandbox Code Playgroud)

(通常你有大量的系统代表和你自己创建的系统委托.)所以,你只需要为popover委托添加一个,因此......

@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
                    UIAccelerometerDelegate,
                    thisDelegate,
                    thatDelegate,
                    UIPopoverControllerDelegate>
Run Code Online (Sandbox Code Playgroud)

应该这样做!如果它不起作用我总是很乐意帮助一个芭比娃娃女孩,所以请进一步询问!