如何从另一个viewcontroller关闭UIPopoverController?
问题描述:
我创建了一个UIPopoverController,并在单击setReminder按钮popoverView时正常工作,将它添加到主视图控制器。我想解散popupview,如果我点击保存按钮,我该怎么办?
如何从另一个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
{
}
答
使用委托,通知上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
我已经完成代码实现,你可以再次检查它 – 2013-02-11 07:08:49
你可以发布完整的.h和.m代码 – Ravindhiran 2013-02-11 13:18:01