Обратный звонок при просмотре перехода?

Я взломал пример мультиканвы. Я хочу изменить его, чтобы вызвать какое-либо событие при каждом отображении нового целевого представления, т. Е. По завершении метода 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:
Другие вопросы по тегам