pass data between view controllers using blocks

ViewA -> ViewB

ViewB

ViewControllerB.h
@property (nonatomic, copy) void(^complete)();
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil complete:(void(^)())completion;
ViewControllerB.m
#pragma mark - blocks
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil complete:(void(^)())completion {
  self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  if(self) {
    _complete = completion;
  }
  return self;
}

// call block
- (void)viewDidDisappear:(BOOL)animated {
  [super viewDidDisappear:animated];  
  _complete();
}

ViewA

ViewControllerA.m
viewController = [[AWLobbyCollectionView alloc] initWithNibName:@"AWLobbyCollectionView" bundle:nil complete:^{
  NSLog(@"thie is complete block!!");
}];