The best way is use of Delegation
, just declare the delegate in your controller B like
@protocol ControllerSDelegate <NSObject>
-(void) hidePopoverDelegateMethod;
@end
and call this on action for passing the data and dismiss of controller like
if (_delegate != nil) {
[_delegate hidePopoverDelegateMethod];
}
and
in your controller A you can handle this delegate call
-(void) hidePopoverDelegateMethod {
[self.paymentPopover dismissPopoverAnimated:YES];
if (self.paymentPopover) {
self.paymentPopover = nil;
}
[self initializeData];
}