Ленивая загрузка UIViewController в представлении iOS 5 - PullRequest
0 голосов
/ 28 декабря 2011

Я хочу написать собственную замену UITabbarController в iPad-приложении для iOS5.Так же, как тот, который я нашел на GitHub MHTabBarController .Я прочитал код и обнаружил, что он распределяет все свои viewControllers заранее:

ListViewController *listViewController1 = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];
ListViewController *listViewController2 = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];
ListViewController *listViewController3 = [[ListViewController alloc] initWithStyle:UITableViewStylePlain];

NSArray *viewControllers = [NSArray arrayWithObjects:listViewController1, listViewController2, listViewController3, nil];
MHTabBarController *tabBarController = [[MHTabBarController alloc] init];

tabBarController.viewControllers = viewControllers;

реализация установки выглядит следующим образом:

- (void)setViewControllers:(NSArray *)newViewControllers
{
    _viewControllers = [newViewControllers copy];
    for (UIViewController *viewController in _viewControllers)
    {
            [self addChildViewController:viewController];
            [viewController didMoveToParentViewController:self];
    }
}

установка для setSelectIndex: затем получаетright UIViewController и вызывает addSubview на себя с представлением UIViewControllers.

Мне жаль, что он реализует его с полностью инициализированными тремя ListviewController.Я обнаружил, что вспоминаю статьи о реализации больших scrollViews с отложенной загрузкой, но я ничего не могу найти в Google, и при этом я не помню подробности реализации.

Итак, вопрос в том, кому я реализую отложенную загрузку, поэтомучто UIViewController будет загружаться так же, как пользовательские вкладки на панели вкладок со связанным UIViewController.

1 Ответ

0 голосов
/ 28 декабря 2011

Вы должны реализовать ленивую загрузку. Вы никогда не знаете, насколько тяжелым может быть UIViewController. Ну, это зависит от того, как далеко вы реализовали. У вас уже есть кнопки для переключения вкладок? Если это так, просто нажмите соответствующий UIViewController к UIView. Когда вы нажимаете другую, вы можете скрыть ее и добавить еще одну UIViewController.

...