2013-02-11 79 views
0

我創建了一個UIPopoverController,並在單擊setReminder按鈕popoverView時正常工作,將它添加到主視圖控制器。我想解散popupview,如果我點擊保存按鈕,我該怎麼辦?
enter image description here如何從另一個viewcontroller關閉UIPopoverController?

**mainView.m** 
-(void)btnSetReminderTapped:(id)sender 
{ 
setReminderView =[[setReminder alloc]initWithNibName:@"setReminder" bundle:[NSBundle mainBundle]]; 

setReminderView.delegate = self; 
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:setReminderView]; 
popover.tint = FPPopoverDefaultTint; 

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    popover.contentSize = CGSizeMake(400,400); 
} 
else { 
    popover.contentSize = CGSizeMake(320, 288); 
} 
popover.arrowDirection = FPPopoverArrowDirectionUp; 

//sender is the UIButton view 
[popover presentPopoverFromView:sender]; 
} 

    ***setReminder.m*** 

- (IBAction) btnSaveTapped:(id) sender 
{ 

} 

回答

0

使用委託,通知上btnSave行動你的主要觀點,並在該委託解僱。

@protocol EventDelegate <NSObject> 

- evenSaveButtonClicked; 

@end 

在您的主視圖控制器實現它作爲

- (void) eventSaveButtonClicked{ 
    [popover dissmissPopoverAnimated:YES]; 
} 

-(void)btnSetReminderTapped:(id)sender 
{ 
setReminderView =[[setReminder alloc]initWithNibName:@"setReminder" bundle:[NSBundle mainBundle]]; 
setReminder.delegate = self; 
setReminderView.delegate = self; 
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:setReminderView]; 
popover.tint = FPPopoverDefaultTint; 

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    popover.contentSize = CGSizeMake(400,400); 
} 
else { 
    popover.contentSize = CGSizeMake(320, 288); 
} 
popover.arrowDirection = FPPopoverArrowDirectionUp; 

//sender is the UIButton view 
[popover presentPopoverFromView:sender]; 
} 

你必須創建SetReminder類

@interface SetReminder 

@property(nonatomic, unsafe_unretain) id<EventDelegate> delegate 

@end 

(.M)內,在實現文件的委託,你可以依達拉奉它如下

@implementation SetReminder 
@synthesis delegate 

// Your button save code 
- (IBAction) btnSaveTapped:(id) sender 
    { 
     if([delegate respondToSelector:@selector(eventSaveButtonClicked)]){ 
      [delegate eventSaveButtonClicked]; 
     } 
    } 

@end

+0

我已經完成代碼實現,你可以再次檢查它 – 2013-02-11 07:08:49

+0

你可以發佈完整的.h和.m代碼 – Ravindhiran 2013-02-11 13:18:01

相關問題