Вам необходимо объявить объект VC глобально .. в противном случае вы столкнетесь с некоторыми проблемами.
@ interface ViewControllerA ()
{
ViewControllerB *viewControllerBObj;
}
- (void) viewDidLoad
{
[super viewDidLoad];
viewControllerBObj = [[ViewControllerB alloc]initWithNibName:@"ViewControllerB" bundle:nil];
[self.view addSubview:viewControllerBObj.view];
}