Multiply viewcontrollers indise view - ios

I need to create viewcontroller with segmented control and multiply controllers, that will be switched by segmented control. Also I need segmented control to be always on top of the main view. So, I thought about design with scrollview->segmented control->some view, which contains view controllers and switches them by pressing on segmented controll.
Can anyone please share some directions on how to create view and switch view controllers inside that view ?

It seems like you should use Container Views, you can have multiple container views in one view. This also helps keep your code clean and your storyboard a lot more readable.

Related

how to manage view controllers in a sequential pattern - swift

I'm trying to implement sth like images below. there are some views that should be displayed in a sequential order and a bar above them shows the flow of tasks.
as it is shown, first profile view should be displayed. when the user clicks on Go to Next View Button second view (price view) should be displayed. the top bar shows the current view where we are in it. I've tried PagingMenuController already to create a menu with views and then disable scrolling. but PagingMenuController loads all views at the same time and also i don't know how to go to next menu item within child views. now I'm thinking of a container view might be helpful but i didn't use container view so far and i don't know it's good for my purpose or not.
also i want that top bar without swiping between views (only on buttons) and one enable view at the same time.
any helps would be apprectiated.
Your question is both broad and vague. My answer is also going to be fairly high level. I suggest you follow my outline, and if you get stuck on a particular step, post your code, tell us about the problem you're having, and we can help you fix it.
This is pretty simple. Create custom view controller. Give it a container view at the bottom that would contain the current child view controller. Use view controller transition methods to switch between child view controllers. You'll want to add layout anchors to each new child view controllers to pin all of it's view's edges to the edges of the container view.
Create a custom control on top to show the dot and highlight the title of the current view controller.
If you want the next/previous buttons to be on the child view controllers, put them there, and add a delegate property to all the child view controllers that points to the parent view controller, with next and previous methods.
BTW, in languages, like English, where text is laid out from left to right, I would think your first page would be on the left and the last page would be on the right. (I think it makes more sense for profile to be on the left and pay on the right.)

Issue with Container Views in XCode

I have a simple project with one view controller. I want to add two views and create a transition between the two.
I've read that I must add the two views to a container view. When I drag the container view to the Document Outline, It appears at the same level as the views. I can't get it to be higher in the hierarchy. What am I missing?
Thanks!
Martin
"container view" in this case does not mean the container view you can select from the object library (this one you need if you want to embed viewcontrollers in other viewcontrollers) but just a regular uiview. drag a regular uiview from the object library to your viewcontroller and put the views you want to animate into this container uiview.
You need to explain what you want to do more clearly. You also need to be careful to use the right terms. Views and view controllers are different animals. Pretty much everything that appears on the iOS screen is a view: Buttons, labels, text fields, switches, etc are all views. The object that manages a whole screen-full of views is called a view CONTROLLER. Do not call view controllers views.
If you want a transition where 1 view controller gets fully replaced by another, you don't want container views. You want to use a navigation controller or maybe a modal segue. If you want a second view controller's view to appear inside your first view controller's views, then you want a container view.
If you just want to add additional views (text fields, image views, buttons, etc.) to your view controller then you just drag those objects onto your first view controller's scene in your storyboard.
In order to provide more help than that you're going to have to be clearer about what you are trying to do.

iOS, set properties on embedded views

I have a control panel style app which, on tap of a help icon, provides an overlay layer equal to the self.view frame (a glass layer) where text & direction arrows provide insight into the apps use.
In the root UIViewController i have a UIContainer embedded with a UITableViewController. I'm modal styling, or greying out various elements on the view controller to attracted the user's attention to the UI element in question.
In order to grey out (change the background colour) of the table, would i need to setup a delegate method between the root view controller & the embedded uitableview controller? or is there a simpler way to achieve the described effect?
If you've done this correctly, the child view controller is the parent view controller's childViewControllers[0]. So there should be no problem communicating between one view controller and the other.

Split view in iPad

I am trying to create an iPad app wherein I need to maintain a split view throughout the app. In the split view, the left view is static and the rightview changes according to the selection of left view. The right view in turn might contain toolbars through which I can navigate to new views, But the left view always remains same.
I might have gone in with a split view but the problem is the left view is not table view but I want to use a customised view here. Is it acceptable to do this?
Please suggest if there are any better ways make a split view without using the default split view controller.
A split view controller can have any type of view in each of its 'panes', the standard template has a table view but there is no requirement to do so. Start with the template and then edit the master view controller so it's a subclass of UIViewController, you can also remove or edit the XIB as you require.

What is the correct way to handle multiple view controllers on the same screen?

I'm having a view controller, that has few controls and images, and is located on top of the screen. I will have a space below it for child view controllers and their views.
I will show one child view controller at a time, what is a good way to do that?
Total amount of child view controllers is around 6, they are very different, so reusing some container view controller won't really work.
When pressing some button on these controllers I will move to next one.
Should I make some property, let's say contentView that will hold a view of the controller that is currently on screen?
How do I handle rotation if I don't use auto layout?
EDIT: This is more a theory question, I know of methods addChildViewController and know the way how I add views and controllers to their parents. I just want to know the good way to do that.
It depends somewhat on how you want to transition between the different child view controllers, but your question already lists a good approach.
You definitely want a different view controller for each of the children. Add a container view to your top level view. This view is where rotation and auto-resizing are handled. The contents of this view could be the child view controllers views themselves (and you control the transitions using one of the methods like transitionFromView:toView:duration:options:completion:) or the container view could hold a UINavigationController and you just push the child view controllers into it.
Whatever the container view holds, you need to take care if any of your child view controllers tries to present another view controller as a modal. The presented view controller needs to be presented by the view controller at the top of the hierarchy or the presented view may no interact correctly or truly be presented in front of other screen elements.

Resources