Reputation: 953
I have a UIScrollView
in my app and I am adding some custom views from xib to it so you can horizontally scroll (tabbing) in ScrollView
to change which one is shown. For now this works but I have a problem with connecting views to controllers.
I don't know how to choose structure of ViewControllers
(how many controllers should I use, use nested controllers,...).
I have a rootView and its controller. In this rootView there is a ScrollView
and this ScrollView contains some custom views (subviews) loaded from xib (using loadNibNamed method).
My question is should I use the same ViewController
as for rootView
also for these subviews
in ScrollView
? Problem is that the ViewControllers
view property is already bind to the rootView (super view
in rootView
) so when I bind this view property also to subviews an error is occurred. Also if I create new controller for these subviews an error is occurred as well.
When I am loading subviews
to the ScrollView
with loadNibNamed
method in ViewController
of rootView, owner of these subviews
is ViewController
(owner argument of loadNibNamed
method is set to self
).
Can you tell me please, how should I solve this? What controller
should I use for subviews
, should I create new one or should I use existing one. Or should I use some nested controller
? I am newbie in iOS development so I have a chaos in using ViewControllers
right now...
Upvotes: 0
Views: 382
Reputation: 3399
If there isn't much code that is relative to controlling the sub views you could use just the root view controller. i.e A single controller for a single scene would be a good MVC approach.
If you are using it this way , don't change the view property of view controller as this messes it up for the root view - controller setup. If you just need a reference to this views you already have it with the return value of loadNibNamed
. Also if you are setting the owner to self then create additional instance variable to hold the sub views(and not the view
property) so that you can specify the owner from the xib itself and connect the references appropriately.
However if you have substantial business logic to be written regarding the sub views then its fine to create separate view-controllers(a single class would be fine if all the subviews behave the more or less same way if you are getting what i mean) for it. In the xib for the subviews, you can specify this class as the owner and when using loadNibNamed:
you should create an object of the subviewcontroller class and specify this as the owner. This way you can modularize the whole thing.
Upvotes: 1