Делегат UITableView не вызывается при извлечении UIViewController

#objective-c #iphone #xcode #cocoa-touch #delegates

#objective-c #iPhone #xcode #cocoa-touch #делегаты

Вопрос:

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

Затем я подключаю другой контроллер представления к тому, который содержит представление таблицы. Чего я хотел бы добиться, так это того, что при извлечении второго контроллера представления и возврате к предыдущему контроллеру представления эти методы делегирования uitableview вызываются снова (чтобы повторно заполнить таблицу).

Другими словами, как вы повторно заполняете uitableview при переходе к контроллеру представления.

Спасибо

Ответ №1:

В viewDidLoad or viewDidUnload , viewWillAppear , viewWillDisappear (в зависимости от того, что из них подходит для вашей ситуации) вы можете поместить [myTable reloadData]; :

 // If you can include some code it would help as I am a bit uncertain
// about exactly what you are trying to do from the question but
// you should use whichever of these is correct for project:

- (void)viewDidLoad {
    [super viewDidLoad];
    [myTable reloadData];
}

- (void)viewDidUnload {
    [myTable reloadData];
}

- (void)viewWillAppear {
    [super viewWillAppear];
    [myTable reloadData];
}

- (void)viewWillDisappear {
    [super viewWillDisappear];
    [myTable reloadData];
}
  

Ответ №2:

Что вам нужно сделать, так это добавить [self.tableView reloadData] вызов (или любую другую переменную вашей таблицы) внутри viewWillAppear метода его контроллера представления. Это приведет к перезагрузке представления таблицы как при нажатии (как это происходит сейчас), так и при извлечении других контроллеров представления для его отображения.