2013-02-11 81 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

相关问题