弹出视图通知

时间:2010-11-01 04:28:48

标签: iphone iphone-sdk-3.0 uipopovercontroller

我有一个弹出视图。当这个弹出窗口被解雇时,我希望得到通知。

有什么办法吗?

请帮帮我。

3 个答案:

答案 0 :(得分:6)

答案非常简单!

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

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

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

行?如果你真的想要防止它被解雇,你也可以使用popoverControllerShouldDismissPopover。

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

如果您不知道该怎么做,解决方案几乎总是在您正在使用的课程的代表中。

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

每当你使用任何委托时,你当然必须将委托设置为“你”,

zipcodeEntryPopover.delegate = self;

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

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

因此,在您的.h文件中,您将拥有类似的内容,

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

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

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

使用此委托方法

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

}