2010-11-01 54 views
1

我有一個彈出視圖。當這個popover被解僱時,我想要得到通知。Popover查看通知

有沒有辦法做到這一點?

請幫我一把。

回答

6

答案非常簡單!

每當popover被解散時,都會調用委託例程popoverControllerDidDismissPopover。

所以纔將此代碼添加到您的代碼......

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

OK?如果你真的想阻止它被解僱,你也可以使用popoverControllerShouldDismissPopover。 (注意 - 在不尋常的情況下,你正在使用多個popover,只需在那個例程中檢查它正在被解散的那個例子,例如,如果(popoverController == myPostcodePopover){}或其他。 )

如果您不知道該怎麼做,該解決方案几乎總是存在於您正在使用的課程的代理中。

-----------別忘了這樣做!

每當你使用任何委託,當然你必須設置委託是「你」,

zipcodeEntryPopover.delegate = self; 

-----------不要忘了這樣做!

如果您打算使用這樣的委託,您只需將它添加到您在.h文件中聲明該類的委託聲明中即可。

所以,在你的.h文件中,你將有這樣的事情,

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

(通常你在那裏有大量的人,無論是系統的代表和你自己,你已經創建了)。所以,你只需要添加一個爲popover代表,因此...

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

這應該做到這一點!如果它不起作用,我總是樂意幫助一個bar girl女孩,所以請進一步提問!

+0

嗨thnk你我粘貼上述code..it多年平均值得到所謂的reply..when ......我失去了什麼 – user198725878 2010-11-01 06:52:12

+0

嗨...感謝您的幫助...... – user198725878 2010-11-01 07:59:00

+0

+1 for *注意 - 在不尋常的情況下,您正在使用多個popover *,這真的很難調試,尤其是當您將自己的控制器分爲3個級別決定在稍後的階段添加一些彈出... – mvds 2011-01-06 00:59:22

0

使用該委託的方法

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

} 
3

像其他人所說,使用-(void)popoverControllerDidDismissPopover: (UIPopoverController *)popoverController但他們都錯過了一個臨界點;不要忘記,當您創建它改變UIPopoverController的代表:

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

我錯過了這一行,因爲你提到「popoverController.delegate = self;」...謝謝你 – user198725878 2010-11-01 07:58:21