I'm trying to dismiss a popover when selecting a cell inside of it. I have created a custom delegate to support this however it is not working: In my class that houses the PopOver and table View I have the following:
In .h:
@protocol DismissDelegate <NSObject>
-(void)didTap;
@end
@interface AssistanceNeededAtPopOverViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
@property (nonatomic, assign) id <DismissDelegate> delegate;
In .m:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.delegate didTap];
}
In .h of the viewcontroller where the popover lives in:
@interface GlobalPageSideDetailViewController : BaseViewController <UITextFieldDelegate, UIAlertViewDelegate,UIPopoverControllerDelegate,DismissDelegate>
and in .m:
AssistanceNeededAtPopOverViewController *classpop = [[AssistanceNeededAtPopOverViewController alloc]init];
classpop.delegate = self;
-(void)didTap{
if (self.assistanceNeededAtPopover != nil) {
[self.assistanceNeededAtPopover dismissPopoverAnimated:YES ];
self.assistanceNeededAtPopover = nil;
}
}
this should be read and the popover should be dismissed...any help would be appreciated...
You have to set the delegate of your AssistanceNeededAtPopOverViewController that pops the controllerview, as the new GlobalPageSideDetailViewController.
Here you're setting the delegate of a controller you just instantiate and not the one which poped the controller.