Я читал, что создание подкласса UITabBarController не рекомендуется. Однако как тогда можно реализовать отложенную загрузку представлений элементов панели вкладок?
Я экспериментирую со стандартной иерархией представлений приложения: в моем основном файле делегата приложения (application: didFinishLaunchingWithOptions :) я создаю экземпляр пользовательского подкласса UITabBarController с 4 элементами / значками панели вкладок. Мне нужно только загрузить первое представление первого элемента панели вкладок -другие представления должны загружаться лениво по запросу. Итак, в application: didFinishLaunchingWithOptions: я загружаю приветственное представление и помещаю его в первый UINavigationController (1). Остальные элементы панели вкладок пусты. UINavigationControllers - (2, 3, 4). Вот мой собственный подкласс UITabBarController, который также является удалением самого себя:
@interface MainUITabBarController : UITabBarController <UITabBarControllerDelegate> {
}
@end
@implementation MainUITabBarController
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
UIImageView *image = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBG.jpg"]] autorelease];
UIViewController *vc = [self.viewControllers objectAtIndex:item.tag];
vc.view = image;
}
@end
В настоящее время вид второго элемента панели вкладок - это просто UIViewController, но скоро он станет UINavigationController :)
Итак, вернемся к проблема, какие еще варианты (больше жалоб на яблоко) могут заключаться в реализации обработки действий элемента панели вкладок для отложенной загрузки?