How to make TabBarController inside another TabBarController in swift storyboard? - ios

I wanna know how to create nested UITabBarControllers in Xcode, I'm using Swift.
My first UITabBarController has two items: Search (UITableView) and Map (MKMapView).
When I hit a cell in my table I wanna go to the second UITabBarController.
This second UITabBarController is the detail page for the clicked cell and must have three items --> Info, Reviews and Contact.
Can anyone explain how to do this? Right now I only have the first UITabBarController and a single view controller for the detail page working.
EDIT: The main problem is that when I nest the UITabBarControllers, my app always shows the items of the first UITabBarController.

Make another Tab View Controller next to it (You should see two tab view controllers on the storyboard), and then inside the Tab View Controller you want the other one in, insert a Container View. After the Container View is in the desired Tab View Controller and sized properly, hold control and drag from the Container View to the other Tab View Controller. After releasing, select embed and you should be good to go! Hope this helps. If it does, please vote this up :)

I found the answer by myself.
Just create a segue between the list view and the second tab controller.
And select on the second tab controller hide bottom bar on push in the attributes inspector.

Drag and drop new tabbarcontroller from stroryboard and from your list view controller ctrl+drag to this newtabbar controller and select show segue. (assuming that you are using navigation controller)

Related

Navigation bar missing in storyboard with show segue in Xcode 8

Why can't I see the navigation item under my second View Controller? My setup is as follows: I have a view controller embedded in a navigation controller. This view controller is linked to a second view controller with a "Show" segue. I can select & edit the navigation bar for the first view controller, but cannot see it in the element list for the second view controller. I also cannot edit it in the second view controller (i.e. add a button). How can I fix this?
First, drag a navigation item under your second view controller:
Then, you have it to edit:
How can you link the firstViewController and secondViewController? I try to link and I only can link the firstViewController and secondViewController in there.
But, this link is error, I set the different color for two viewController, the secondViewController cannot display.
So, you lost Navigation Bar? Select the View Controller you want to add and click on Status Bar / Top Bar dropdown list in Attributes
Inspector.
This is a known bug on Xcode, you can manually drag a Navigation Bar to your Second ViewController.

using my ViewController as a TabBarController

So i currently have a ViewController that has a tableView in it with a tab bar on the bottom. Its basically an instagram clone. However, i built all the tableView functionality and am now just getting around to playing with the tab bar items to segue to new view controllers.
I cant figure out how to attach my already created tab bar(which is inside a regular view controller) to other view controllers in IB.
The ctrl+drag from the newly created view controllers to my MAIN view controller doesn't work. It doesn't provide an option to create a view controller segue.
Below is an image of my current view controller and a brand new one to the right
Any help on how i can do this would be greatly appreciated
On you tabbbar controller ctrl+click and drag to the view controller you want to create a relationship to.
Then when the little menu appears, under 'relationship segue' click 'view controllers'
You should then end up with something like this. Continue the same process to add more relationships.

Keeping a loaded View part of the tabController when the tableView cell is clicked?

I have a tabbed application with a TableView in the FirstView. I want to be able click on a cell in the TableView and load a new view.
Right now, when the cell is clicked I go to the view I want but it isn't part of the tab bar controller (as in I I don't see the two tabs on the bottom) and I also can't get back to the FirstView where the TableView is located.
I have seen tutorials on this but they are all starting from scratch. I already have a lot of content on my FirstView so I don't want to start over.
I think I have to put in a Navigation Controller but I don't know how to do that without starting over and I also don't know where I would put it.
Here is the StoryBoard for my app:
http://i.imgur.com/2YJMMD5.png
I am not sure if I understood what you are trying to do but try to control click from your cell in the Home Table View Controller to your Friend View Controller, this will create a segue from the cell to the view controller so the view controller will be called once the cell is clicked.
Please let me know if this is what you are going for!
All you need to do is select your table view controller, go to the Editor menu, and choose "Embed in Navigation Controller". This will insert a navigation controller between the tab bar controller and your table view controller. Now when you select a cell, you should use a "show" segue to go (via a push) to your new view controller.

How to create a UIView with NavigationBar and TabBar

I would like to introduce in my app a View that will contains both navigation bar and a tab bar at the bottom. View contains a Table View with multiple entries and once user tap on a cell a push segue takes him to another view with details regarding the cell he has previously tapped. If he decides, user can go back to parent view by tapping on 'Back' button of the navigation bar on top. In addition to this, I would like my view to have a tab bar at the bottom with extra tools for the user. So, if he decides to check the 'Creator' of the app, he can by simply tap on 'Creator' TabBarItem at the bottom.
I would like to ask you what is the best way to achieve the above. I have already tried to use UITabBarController combined with UINavigationController. Didn't achieve what I was looking for because I would like the view with the table on it to be independent from the TabBarController and NOT a part of it (by part I mean by accessible through tabs).
Do you believe a UINavigationController view with UITabBarView would be a better choice?
UPDATE
What I mean by, "independent from the TabBarController and NOT a part of it":
Once the app loaded, I would like to see my main view (with table) contains Navigation Bar on top and Tab Bar at the bottom. However, I don't want to see the first tab of the Tab Bar selected because my main view will not be accessible through tabs of the Tab Bar but through Navigation Bar. If, for example, I am in Main view and tap on 1st tap, I would like to move to another view that will contains some other info.
Option 1:-
Create a tab bar Controller and on that TabbarController assign your navigation Views.
say nav1 with tab1 , nav2 with tab2...
Option 2:-
Create a Navigation View Controller and than add the tabbarcontroller on that navigationView Controller by using addSubView.
So when the user clicks on a row in a table u will go to a different View which doesn't have the TabbarController and when the user comes back he will again see the TabbarController.
This is what I will do:
First I will subclass UITabbarController and create for example ParentTabBarController. This controller will contain all the tabs necessary and what they will do if they are clicked so on.
Next for each viewcontroller I create, I will subclass from this ParentTabBarController so that the tabs are already in. You can add additional functionality or override it depending on your situation.
In your appdelegate pass in a navigation controller and every time push and dismiss the viewcontrollers you created in second step.
Hope this helps..

Trying to add 3rd tab to tabBarController

I'm trying to add a 3rd tab to the tabBarController using ios5. The standard object you get when you drag it out to your storyboard has 2 tabs. Does anyone know how to do this? I searched the internet and all examples start with their tabBarController with the extra tabs without showing how to get it.
Here is the video I watched that taught me how to add a third tab to a TabBarController:
Tab bar for Xcode Swift for iOS
I will summarize the process below.
Create a new Tabbed Application project
This will automatically provide two tabs that already "just work".
Add new View Controller
Drag another view controller onto the storyboard.
Add Tab Bar Item
Drag a Tab Bar Item onto the new View Controller that you just added.
Connect to Tab View Controller
Click and Control-Drag from the Tab View Controller to your new View Controller. A menu will pop up. Choose the view controllers option under the Relationship Segue group.
That's it. You should be able to run it now and have all three tabs work. Watch the video that I linked to for more details.
Note:
To do anything on your new tab, don't forget to add a new View Controller class (as you would for any new View Controller).
Based on Wolvorin and Tom van responses, and based on what I have experienced you should do as following:
Create an empty View Controller (in Controllers and Objects)
From Windows and Bars, drag Tab Bar Item to the newly added view
From the main View Controller, select Tab Bar Controller icon (next to First Responder), and Control-Drag to the newly added View
BOOM you have new tab
To expound on #Roozbeh 's answer, when you control drag from the Tab Bar Controller to the newly added view controller, make sure you select the view controller option under Relationship Seque
I was reading this question after having the same problem and I wanted to clarify what the exact step was.
for third tab first add a view controller and then right click the tabview controller and then from it's storyboard segway from relation controll drag to the added view controller and it's done
Look in the right part of the screen, I believe it's the Objects library view. Just find the "Tab Item" (or something) and drag it into the bar.

Resources