У меня странная проблема.У меня есть приложение панели вкладок, в котором я использую контроллер навигации для каждой из разных вкладок, и у каждого контроллера навигации есть свой собственный контроллер просмотра для отображения некоторого содержимого.
Когда я касаюсь вкладки, я хочувкладка должна быть немедленно загружена с представлением, и после ее загрузки (viewDidAppear:
) я хочу, чтобы она загрузила некоторые данные в метод viewDidAppear:.
Чтобы проверить эту функциональность, я настроил следующий метод.Я использую NSThread
для имитации выполнения некоторых длительных операций, которые должны выполняться в фоновом режиме, пока представление загружено.Затем я назначаю NSArray * test (nonatomic, retain) с некоторыми тестовыми данными и перезагружаю таблицу.
Я перезагружаю таблицу, потому что в методе viewDidLoad
я устанавливаю таблицу, содержащую только одинпустая строка (это потому, что я прочитал, что таблица настроена до вызова viewDidAppear:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
DLog(@"viewDidAppear running");
[NSThread sleepForTimeInterval:10];
NSArray *array = [[NSArray alloc] initWithObjects:@"Test1", @"Test2", @"Test3", @"Test4", @"Test5", @"Test6", nil];
self.test = array;
[array release];
[table reloadData];
}
Так что мое ожидаемое поведение должно состоять в том, что при прикосновении к этой конкретной вкладке она должна мгновенно загружать и затем через 10 секунд он должен быть заполнен данными таблицы из viewDidAppear: method. Но вместо этого поведение при нажатии этой вкладки ждет 10 секунд , а затем отображаетпросмотр с заполненными данными таблицы.