I would like to use the same functionality of addChildViewController, but for the version 4.3 (addChildViewController is only available in version 5). Thanks in advance.
Something similar is explained in iOS: different addSubview behavior between iOS 4.3 and 5.0.
I have solved it by adding these lines:
NSMutableArray *controladores=[[NSMutableArray alloc]init];
[controladores addObject:myController];
if ([[[UIDevice currentDevice] systemVersion] compare:@"5.0"] == NSOrderedAscending) {
[tabBar setViewControllers:controladores animated:YES];
}
I assume the reason you want to do this is for ipad application, as Apple state that a single view controller should "generally" (and before ipad existed they stated "always") control a whole screen full of views.
This really only changed with the extra screen real estate of the ipad when Apple made their own container view controller (splitViewController) which ultimately led to Apple allowing us to create our own container view controllers in ios5.
If your app is an iphone app then I (and Apple) would seriously question your need for view controller containment.
Although it's not recommended, you can create an instance of a UIViewController
access it's view
property and set it as a subview of the main view
your main UIViewController
is managing. It works, and I never experienced a problem with this.
That said, the recommended way is to have a NSObject
subclass to act as your sub-controller, and not use a UIViewController
as it has special behavior.