well the easiest way but not the most efficient is to make a global object of the viewController A  and viewController A view did load method 
call that global variable and make it equal to self and 
in then  the dismiss from viewController B
will use 
[self dismissViewControllerAnimated:YES completion:^{
  // here you can create a code for calling the global **viewController A** object to call the function you need
}];
conclusion :
in viewController A header file :
extern A* AGlobalInstance;
and in A.m file just below the #import "A.h"
A* AGlobalInstance;
and in the viewDidLoad
- (void)viewDidLoad {
  [super viewDidLoad];
  AGlobalInstance = self;
}
then in B.m button just use 
[self dismissViewControllerAnimated:YES completion:^{
    [AGlobalInstance function];
 }];
but you must go to A viewController first before going to B to make it work