I'm working in Xcode to make an iPhone app. I've used the better part of my day to search for this answer without any luck. (I'll explain as good as I can)
What I'm having trouble with is;
I have a initial view which is a tab bar controller, I've added three views (let's call them A, B, C). There's buttons on all of them, they do again go to other views (5, 6, 7).
However when I press a back button on one of the views it goes back to the initial view (A). Which is ok when the back button is pressed from the views which came from A, but it happens on all the views.
Ok, not very good explained..
Here:
A leads to 5, when pressing the back button on 5 it goes back to A B leads to 6, when pressing the back button on 6 it goes back to A C leads to 7, when pressing the back button on 7 it goes back to A
I want the buttons 6 and 7 go to B and C. (The last active tab bar item). To put it very easily, I want the back button to lead to the last active tab bar view.
Thanks!
You are actually making a technical mistake. You can present your modal views using storyboard GUI but to dismiss a modally presented you have to write action code. You can use
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
to dismiss your modally presented view.
Currently what you are doing (wrong) is that
1) You have at the root you have a UITabbarController
with two tabs.
2) From second tab you present a modal view using a modal segue.
3) Now from this modal view, instead of dismissing it, you present another instance of your tabbarController
and it shows first tab selected again.
So you have to create an IBAction
and attach it with your 'Back to Tabbar view' button. Then call above code inside that IBAction
as follows...
-(IBAction)backButtonTapped
{
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
}
If still you are unable to understand, please go through this excellent tutorial.