如何从子视图调用父视图上的CCButton



在父视图中,有一个名为pausebutton的CCButton,当点击它时,子视图将被添加到该视图

 [[CCDirector sharedDirector] pause];
 pausebutton.selected = YES;
 pauseLayer *pauseLayer = [pauseLayer node];
 [self addChild:pauseLayer];

在子视图pauseLayer中,也有一个叫做resumebutton的按钮,当点击它时,这个子视图将从父视图中移除,并且都设置了pausebutton的选择是NO。

 - (void)backResume:(id)sender
 {
  [self.parent removeChild:self cleanup:YES];
  [[CCDirector sharedDirector] resume];
 }

但是我找不到从子视图调用暂停按钮的方法,所以你能帮我吗?

在父类中添加一个强制暂停的方法:

in .h:

 -(void) forcePause;

in .m:

-(void) onButton:(id) sender {
    [self forcePause];
}
-(void) forcePause {
    [[CCDirector sharedDirector] pause];
    pauseLayer *pauseLayer = [pauseLayer node];
    [self addChild:pauseLayer];
}

和在子元素中,当触发暂停的条件满足时

[self.parent forcePause];

只是大意,还有其他方法可以实现。这个例子适用于一个非常简单的用例/游戏。或者,在父进程中,您可以侦听@"forcePause"通知,并在子进程中通知。