我有一个弹出视图。当这个弹出窗口被解雇时,我希望得到通知。
有什么办法吗?
请帮帮我。
答案 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
{
}