альтернатива addChildViewController для iOS 4.3 - PullRequest
3 голосов
/ 13 февраля 2012

Я хотел бы использовать ту же функциональность addChildViewController, но для версии 4.3 (addChildViewController доступен только в версии 5). Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2012

Хотя это и не рекомендуется, вы можете создать экземпляр доступа UIViewController к его свойству view и установить его в качестве подпредставления основного view, которым управляет ваш главный UIViewController. Это работает, и у меня никогда не было проблем с этим.

Тем не менее, рекомендуется использовать подкласс NSObject в качестве вашего подконтроллера, а не использовать UIViewController, поскольку он имеет особое поведение.

0 голосов
/ 14 февраля 2012

Я предполагаю, что причина, по которой вы хотите сделать это, для приложения ipad, так как Apple заявляет, что один контроллер представления должен «в целом» (а до того, как ipad существовал, они заявили «всегда») контролировать весь экран, полный просмотров.

Это действительно изменилось с дополнительным пространством экрана ipad, когда Apple создала собственный контроллер представления контейнера (splitViewController), что в конечном итоге привело к тому, что Apple позволила нам создавать собственные контроллеры представления контейнера в ios5.

Если ваше приложение представляет собой приложение для iphone, то я (и Apple) серьёзно поставлю под сомнение вашу потребность в контроллере представления.

0 голосов
/ 14 февраля 2012

Нечто подобное объясняется в iOS: различное поведение addSubview между iOS 4.3 и 5.0 .

Я решил это, добавив следующие строки:

NSMutableArray *controladores=[[NSMutableArray alloc]init];
        [controladores addObject:myController];
        if ([[[UIDevice currentDevice] systemVersion] compare:@"5.0"] == NSOrderedAscending) {
            [tabBar setViewControllers:controladores animated:YES];
        }
...