Обратный звонок при просмотре перехода?
Я взломал пример мультиканвы. Я хочу изменить его, чтобы вызвать какое-либо событие при каждом отображении нового целевого представления, т. Е. По завершении метода transitionFromView.
Я понимаю, что мог бы, вероятно, вызвать какое-то событие из блока завершения метода transitionFromView, но мне интересно, существует ли уже существующий механизм обратного вызова для этого.
Я попытался реализовать следующее на целевом холсте, но, похоже, это не вызывается при переключении видов:
- (void)viewDidAppear{
NSLog(@"my event");
}
Есть ли другой обратный звонок, о котором я не знаю? Спасибо.
1 ответ
Попробуйте использовать следующие методы:
-(void)viewDidAppear:(BOOL)animated {}
-(void)viewDidDisappear:(BOOL)animated {}
ПРИМЕЧАНИЕ: это :(BOOL)animated {}
часть, которую вы пропустили в именах методов.
Я скачал пример MultiCanvas и установил заголовок для каждого из полотен следующим образом (изменив A на B и C):
-(void)setup {
self.title = @"WorkSpaceA";
//... the rest of the setup code as per the example
}
Я также добавил два метода для каждого из полотен:
-(void)viewDidAppear:(BOOL)animated {
C4Log(@"%@ %@",self.title,NSStringFromSelector(_cmd));
}
-(void)viewDidDisappear:(BOOL)animated {
C4Log(@"%@ %@",self.title,NSStringFromSelector(_cmd));
}
Затем я получил следующие журналы:
//at launch
[C4Log] WorkSpaceA viewDidAppear:
//then I tapped button B
[C4Log] WorkSpaceB viewDidAppear:
[C4Log] WorkSpaceA viewDidDisappear:
//then I tapped button A
[C4Log] WorkSpaceA viewDidAppear:
[C4Log] WorkSpaceB viewDidDisappear:
//then I tapped Button C
[C4Log] WorkSpaceA viewDidAppear:
[C4Log] WorkSpaceB viewDidAppear:
[C4Log] WorkSpaceC viewDidAppear:
[C4Log] WorkSpaceA viewDidDisappear: