1

我正在破解multicanvas 示例。我想修改它,以便在显示新目标视图时触发一些事件,即在 transitionFromView 方法完成时。

我知道我可能会从 transitionFromView 方法的完成块中触发一些事件,但我想知道是否有一个现有的回调机制来解决这个问题。

我已经尝试在目标画布中实现以下内容,但是在切换视图时似乎没有调用:

- (void)viewDidAppear{
    NSLog(@"my event");
}

还有另一个我不知道的回调吗?谢谢你。

4

1 回答 1

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:
于 2014-08-15T16:28:48.143 回答