I am changing the layout of an existing application. There are a series of view which now needs to be added to a scrollview that the users can swipe to move to next screen. I have added the controllers to scrollview using the code below.
This code is added in the viewDidLoad of the Viewcontroller which holds the UIScrolliew
.
int i=1;
int width = 0,height=0;
for(POTCTask *task in [CommonData tasks])
{
UIViewController<TaskViewController> *controller = [TaskViewFactory getTaskViewController:(task.inputTypeId)];
width = controller.view.frame.size.width;
height = controller.view.frame.size.height;
controller.view.frame = CGRectMake(width*(i-1), 0, width, height);
[self.scrollView addSubview:controller.view];
i++;
}
self.scrollView.contentSize = CGSizeMake(width*i, height);
It loads all view fine. But only the viewDidLoad is getting called in each viewcontroller. No other methods are getting called And some have UItableviews in it. But its showing only the first cell.
How can I do this properly in ios?
Thanks
I believe your problem is that you are not adding these view controllers as children of the controller that contains your scrollview. In Apple's View Controller Programming Guide they provide this example for adding a child controller:
and this one for removing one:
https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html
I believe this will cause the additional methods to be run.