I will call your viewController as "PopUpViewController".
PopViewController.h:
@class PopUpViewController;
@protocol PopUpViewControllerDelegate
//It is delegate -> notify MainViewController to close PopUpViewController
-(void)closeWasCalled: (PopUpViewController*)sender;
@end
@interface PopUpViewController: UIViewController{
//Some variables
}
//Your some properties
//define PopUpViewControlleras delegate
@property (nonatomic, weak) id <MyClassDelegate> delegate;
@end
PopViewController.m:
-(void)btnClose{ //your close button in PopViewController
[self.delegate closeWasCalled:self]; //MainViewController will catch that
}
return to mainViewController
MainViewController.h:
//Add delegate
@interface PopUpViewController: UIViewController<PopViewControllerDelegate>{
//Some variables
}
@property (strong,nonatomic) PopUpViewController* pv;
@end
MainViewController.m
//show PopUpViewController where ever you want
//example viewDidLoad
-(void)viewDidLoad{
self.pv = [[PopViewController alloc]init];
//set position...
[self.view addSubView:pv];
//dont forget set delegate
pv.delegate = self; -> it very important
}
//using delegate
-(void)closeWasCalled: (PopUpViewController*)pvc {
[self.pvc removeFromSuperView];
}
I hand write this code and not using SDK because im using windows.
But this is the way you can follow
If get stuck for this. I will answer more
This link is tutorial for create delegate: How do I create delegates in Objective-C?