iPhone - Обновление TableView VC от более высокого ViewController - PullRequest
1 голос
/ 06 апреля 2011

У меня есть ViewController (A) с TableView, где каждая строка является именем каталога. Каждая строка выдвигает новый ViewController (B). Внутри ViewController B я запускаю метод для удаления текущего открытого каталога. Однако, когда я открываю представление и возвращаюсь к TableView, я, очевидно, все еще имею этот каталог в списке. Как я могу это исправить?

Как я могу обновить TableView, возвращаясь в навигацию?

И нет, просто [self.tableView reloadData] внутри -viewWillAppear на самом деле не работает.

Код:

My -viewWillAppear:

- (void)viewWillAppear:(BOOL)animated {
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    self.arrFolders = [[NSMutableArray alloc] init];
    [self allFilesInDocuments:docDir];
}

-allFilesInDocuments просто добавляет элементы в массив ([arrFolders addObject:folder];).

Внутри -tableView:cellForRowAtIndexPath: Я добавляю данные с

cell.textLabel.text = [arrFolders objectAtIndex:indexPath.row];

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Используйте NSNotification.

В viewDidLoad ViewController (A) зарегистрируйтесь для уведомления:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deletedRow:) name:@"deletedRow" object:nil];

Также добавьте функцию селектора:

-(void) deleteRow:(NSNotification *)notif{
[self.tableView reloadData];

}

Наконец, в дочерних контроллерах представления, в вашей функции Delete, опубликуйте уведомление:

[[NSNotificationCenter defautCenter] postNotificationName:@"deletedRow" object:nil userInfo:nil];

Надеюсь, это поможет

0 голосов
/ 06 апреля 2011

Редактирование источника данных и перезагрузка в -viewWillAppear должны сработать, но если это не удастся, вы можете выполнить обновление через вызов контроллера родительского представления или NSNotification.

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