UITabbar загружает 2 просмотра при запуске приложения, а не только первый - PullRequest
1 голос
/ 10 мая 2011

У меня есть uitabbar с 4 кнопками. Начальный экран загружается так, как должен при запуске приложений. 2 вида кнопок не загружаются при запуске (хорошо). 1 представляет собой веб-представление, другое представляет собой навигационный контроллер с табличным представлением. Последнее представление загружается при запуске приложения. Это еще один навигационный контроллер с табличным представлением.

Я знаю, какие загружаются, а какие нет, потому что я добавил nslogs в функцию didload на всех контроллерах верхнего уровня.

Таким образом, общая проблема заключается в том, что когда я запускаю свое приложение, затем поворачиваю его, затем захожу в элемент панели вкладок, который уже загрузил заголовок в табличном представлении, которое является веб-представлением, так и не получил памятку о том, что он должен был повернуться, и поэтому изменил размеры. Как только вы окажетесь в поле зрения, если вы будете вращаться вперед и назад, тогда все будет работать как надо Это только начальное время.

Обновление 1: Вопрос в том, как остановить загрузку второго контроллера, находящегося на другой кнопке панели вкладок, при запуске приложения.

Обновление 2: Я делаю все мои действия по инициализации в didload, но я попытался добавить следующий код, но он никогда не появляется в журнале. Я не пользуюсь IB, все это делается программно:

    - (void)loadView
    {
        NSLog(@"Loading feedback");
    }

Обновление 3: Я выяснил, что вызывает это. У меня есть xib, в котором находится мой tabbarcontroller. В этом tabbarcontroller у меня есть контроллер навигации, затем у меня есть контроллер представления (я установил класс в свой класс обратной связи), затем у меня был элемент навигации и табличное представление. Когда я добавляю просмотр таблицы, он запускает контроллер для загрузки. Простое удаление, которое остановит загрузку формы рано. Затем, чтобы исправить это, я создал XIB для обратной связи. Так что мне не нравится, когда перья этого сервера имеют единственную цель, в данном случае, чтобы получить представление таблицы там и иметь сгруппированный стиль. Я могу попытаться просто вручную добавить просмотр таблицы вместо того, чтобы иметь контроллер просмотра таблиц.

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Это гораздо проще сделать в коде.Контроллер панели вкладок принимает контроллеры представления в массиве, и контроллер панели вкладок по умолчанию - тот, который находится в первом индексе контроллера панели вкладок.

      UITabBarController *tabBarController = [UITabBarController alloc] init];
      tabBarController.viewControllers=[NSArray arrayWithObjects:firstViewConoller,secondViewController,nil];
       [self.view addSubview : tabBarController.view];

Поместите все связанные с представлением задачи в методе viewDidLoadиногда проблема loadView gies это может быть из-за того, что ваш viewController пытается загрузить новое представление, которое вызывает себя снова и снова, поэтому лучше добавить их в viewDidLoad.

0 голосов
/ 10 мая 2011

Контроллер представления для вкладки, которая загружается преждевременно, вероятно, обращается к свойству self.view до того, как оно потребуется.

Если найти точку доступа сложно, добавьте точку останова к loadView, создайте фиктивную перегрузкутолько вызов [super loadView], если необходимо (представление загружается из NIB) .Трассировка стека точек останова покажет вам, где вы заставляете нагрузку происходить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...