Reputation: 4124
I have a UIViewController (HomeView) that shows my UIView called GameView via a Segue.
[self performSegueWithIdentifier: @"segue_playgame" sender: self];
The GameView calls a UIView (PauseView) when the use presses a button. This pause view is shown via just adding the PauseView to the UIView.
UIView *pv = [[PauseView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:pv];
To remove the PauseView I call
[pv removeFromSuperview];
Is there a way to call an "End Game" method in the PauseView that will remove both the PauseView and the GameView taking the user back the HomeView (UIViewController)?
And side note, is there a better way to handle showing views and removing them? Or is how I am doing it pretty much standard?
Upvotes: 0
Views: 38
Reputation: 941
What you are missing here is a UINavigationController
. From the official documentation:
The UINavigationController class implements a specialized view controller that manages the navigation of hierarchical content. This navigation interface makes it possible to present your data efficiently and makes it easier for the user to navigate that content. You generally use this class as-is but you may also subclass to customize the class behavior.
With your views managed by the UINavigationController
stack you can use:
- (NSArray<__kindofUIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated
To pop back to the root view controller which in your case is your home view controller.
Upvotes: 1