viewWillAppear vs Viewdidload ios - PullRequest
       0

viewWillAppear vs Viewdidload ios

8 голосов
/ 10 января 2012

Когда код с iOS-навигационным приложением, я столкнулся с проблемой:

, где я могу поместить метод "initdata" для UITableView?в viewWillAppear или viewDidLoad?

, пожалуйста, помогите мне.

Ответы [ 2 ]

14 голосов
/ 10 января 2012

Вы можете поместить initData согласно вашему требованию приложения,

если ваша таблица должна каждый раз загружать данные новыми данными, тогда она должна быть ниже

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //initData
}

В противном случае, если таблицу необходимо перезагрузить с помощью отдельных данных, которые не изменяются, или не выполняется какая-либо операция редактирования данных, вам следует использовать

- (void)viewDidLoad {
    [super viewDidLoad];
   //initData
}
2 голосов
/ 10 января 2012

Лучше вызвать это в initWithNibName:bundle: или initWithCoder: методе и освободить загруженные данные в -(void)dealloc.

Кроме того, вы можете иметь это в viewDidLoad и освобождать загруженные данные в viewDidUnload. Но лучше не называть это с viewWillAppear:

Edit:

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

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
// Pass the selected object to the new view controller and depend on that, load the data.
[detailViewController initData:(id)[_list objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...