Я пытаюсь понять, что сценарий вызова метода для просмотра сделал/появится и исчезнет.Нужно ли называть супер в видуWillAppear?
То, что я сделал, это выбор ячейки таблицы (высвечивание в сером цвете), переход к подробному представлению и возврат назад и снятие выделения с выбранной строки (удаление выделенного серого цвета ячейки).
Вот мои методы:
-(void)viewDidAppear:(BOOL)animated {
DLog(@"%@ did appear", self);
[super viewDidAppear:animated];
if (_isPushed) {
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
_isPushed=NO;
}
}
-(void)viewWillAppear:(BOOL)animated {
DLog(@"%@ will appear", self);
[super viewWillAppear:animated]; //If I remove this super call , then it works fine and there is no delay in deselecting the table cell
}
-(void)viewWillDisappear:(BOOL)animated {
DLog(@"%@ will disappear", self);
[super viewWillDisappear:animated];
}
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
_isPushed=YES;
}
Так что, когда я ставлю останова поток выглядит следующим образом:
без супер вызова:
, выдвигая на новый ВК:
current viewWillDisappear //makes sense
new viewWillAppear //makes sense
current viewDidAppear // doesnt make sense , y this should get called as the view is already appeared?
current viewWillDisappear // make sense
current viewDidDisappear //make sense
new viewDidAppear //make sense
, возвращаясь из толкаемого ВКА:
current viewWillDisappear
new viewDidDisappear
current viewDidDisappear
new viewDidAppear
с супер вызовом:
, выдвигая на новый ВК:
current viewWillDisappear
new viewWillAppear
current viewDidAppear
current viewWillDisappear
current viewDidDisappear
new viewDidAppear
, идя назад от толкаемого VC :
current viewWillDisappear
new viewDidDisappear
current viewDidDisappear
new viewDidAppear
Поток практически такой же, как я использую супер-вызов или нет. Но проблема, с которой я столкнулся, заключается в том, что, когда я использую супервызов в viewWillAppear, есть задержка (около> 1 секунда) при удалении ячейки.
Если я не использую супер вызов в viewWillAppear, нет никакой задержки и клетка deselcting (около < 0,5 секунды)
Я не уверен, использовать супер вызов или нет.
Может кто-нибудь, пожалуйста, скажите, почему происходит отмена выбора ячейки?
Если вы не добавляете какой-либо код, не беспокойтесь при добавлении метода. Шаблоны Apple добавляют потенциально полезные ["Boilerplate"] (https://en.wikipedia.org/wiki/Boilerplate_code) методы, если они вам не нужны, то есть не нужно добавлять к ним код, удалять их. В этом примере вы можете просто удалить методы: 'viewWillAppear' и' viewWillDisappear'. – zaph