I am invoking "HelpviewController" from UIViewController
using following code, which is working fine.
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InnerHelpPageViewController"];
self.pageViewController.dataSource = self;
InnerHelpViewController *startingViewController = [self viewControllerAtIndex:0];
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
// Change the size of page view controller
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);
[self addChildViewController:_pageViewController];
[self.view addSubview:_pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
Inside my new controller InnerHelpViewController
I have done button which should remove this newly added view and send control back to initiated page.
- (IBAction)unwindToMenuFromInnerHelp:(id)sender {
[self.view removeFromSuperview];
}
This call removing the newly added view, but the problem is "MenuController" is frozen. I couldn't do any clicks on it. Any help?
To explain flow--> I have menu screen where one button with name "help" --> When user clicks on this help button first snippet of code in this question executes and shows HelpViewController-->Once done with help, user clicks "Done" button--> Which should close the HelpViewController and move to "menu" screen.
Implement protocol method in InnerHelpViewController.h file class
@protocol InnerHelpViewControllerDelegate
-(void)removeCustomView;
@end
@interface InnerHelpViewController : UIViewController{
}
@property(nonatomic, weak) id<InnerHelpViewControllerDelegate> delegate.
In InnerHelpViewController.m file
@synthesize delegate;
- (IBAction)unwindToMenuFromInnerHelp:(id)sender {
[delegate removeCustomView];
}
in MenuController .h file Adopt InnerHelpViewControllerDelegate.
@interface MenuController : UIViewController<InnerHelpViewControllerDelegate>{
}
Now Confirm your delegate in MenuController.m file while helpviewcontroller object creation.
self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InnerHelpPageViewController"];
self.pageViewController.dataSource = self;
InnerHelpViewController *startingViewController = [self viewControllerAtIndex:0];
startingViewController.delegate = self;
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
// Change the size of page view controller
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);
[self addChildViewController:_pageViewController];
[self.view addSubview:_pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
//Implement here delegate method
-(void)removeCustomView{
[self.pageViewController removeFromSuperview]
}