TableView не перезагружается после увольнения modalview - PullRequest
0 голосов
/ 29 января 2012

У меня есть страница, которая проверяет, есть ли список сотрудников в связке, и если он есть, отображает их в виде таблицы. Но если в пакете нет списка, он выдает модальный контроллер вида. Для этого требуется, чтобы кто-то вошел в систему, авторизация была выполнена, а затем данные загружены.

ModalView настроен как делегат первой страницы. Я могу нормально вызвать метод делегата и передать список, но когда ModalView отклоняется, таблица не перезагружает представление таблицы с данными. Если я снова запускаю проект, он мгновенно загружает список в табличном представлении.

Вот метод на ViewDidLoad первой страницы

[self checkLastLoginDate];
[self loadDataIntoArray];


if (currentData && dataLoadedIntoArray) {
    NSLog(@"sweet the data is current");
    [self createIndexedArray];
}    
else{
    NSLog(@"Data not loaded and not current");
    //push login view


///if ipad do this
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{
    //the above code was working fine. I am just testing pushing a dynamic xib
    LoginViewControlleriPad *loginControlleriPad = [[LoginViewControlleriPad alloc] initWithNibName:@"LoginViewControlleripad" bundle:nil]; 
    loginControlleriPad.modalPresentationStyle = UIModalPresentationFormSheet;
    loginControlleriPad.delegate = self;

    [self presentModalViewController:loginControlleriPad animated:YES];
    [self createIndexedArray];
    [loginControlleriPad dismissModalViewControllerAnimated:NO];               
    [self.tableView reloadData];
}

Первые два метода проверяют, чтобы убедиться, что данные в пакете существуют и что последняя дата входа в систему - в течение 15 дней.

если это так, я создаю IndexedArray, и он хорошо отображается.

Если данных нет в комплекте или дата устарела, я проверяю устройство и использую модальное представление. Делегаты установлены, и появляется ModalView.

В ModalView я использую запрос syncronus и asyncronus для обращения к серверу за необходимой информацией. Затем я создаю список и возвращаю его на первую страницу.

Как только соединение установлено и мы немного поработали над списком, мы сохраняем его в комплекте.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:kEMPLOYEE_PLIST];

/////write to file/////
[cleanResults writeToFile:path atomically:YES];

employeeList = [[NSMutableArray alloc ]initWithContentsOfFile:path];

if (employeeList != nil) 
{   
    [delegate passUserInfo:employeeList];

    //cant get login view to dismiss
    //[self dismissModalViewControllerAnimated:YES];
}

Как только я получаю список, я записываю его в файл, а затем снова читаю. Если в списке есть информация, я вызываю метод делегата.

UPDATE

Вот метод Дельгейта

- (void)passUserInfo: (NSMutableArray *)employeeDataArray
{
    employeeData = [[NSMutableArray alloc] initWithArray:employeeDataArray];
    [self.tableView reloadData];

    /////FIX////////
    [createIndexedArray];
}

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

Есть ли шаг, который мне не хватает? Я попытался отследить это и потерять его после этого шага.

1 Ответ

1 голос
/ 31 января 2012

Я на самом деле понял, что мой код настроен правильно, мне просто нужно было вызвать метод, который отсортировал массив в алфавитный массив. Как только я вызвал этот метод из метода делегата, он работал как заклинание змеи.

UPDATE

У меня был метод, который создал индексированный массив. Когда я вызвал это внутри метода делегата, он перезагрузил страницу и вставил новую в табличное представление. Я почти уверен, что он перезагружался все время, я просто не вызывал метод, который заполнял массив, отображаемый в табличном представлении.

...