Cocos2d iphone中的NSNotification

时间:2012-08-22 06:46:06

标签: iphone ios cocos2d-iphone

我在游戏的开始屏幕上有一个按钮,当用户点击它将重定向到下一页的按钮时,我在此按钮点击事件中调用通知,其代码为

- (void)switchsounds
{
    CCLOG(@"hiii");
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadvieweyes" object:nil];
    CCTransitionJumpZoom *transition = [CCTransitionJumpZoom transitionWithDuration:1.0 scene:[HelloWorldLayer scene]];

    // Tell the director to run the transition
    [[CCDirector sharedDirector] replaceScene:transition];


}

上面的代码是按钮点击功能

在init statmnet的下一页我把这段代码放到了按钮事件的功能

-(id) init
{
    if( (self=[super init])) {
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewreloadedeyes) name:@"reloadvieweyes" object:nil];
}
return self;

}



-(void)viewreloadedeyes
{

 CCLOG(@"hiii");

}

我没有得到按钮点击事件中的cclog以及下一页中的功能。但是页面redirction是通过按钮lcick完成的。我的code.how是什么问题,以便将nsnofication从一个页面转到另一个页面点击一下按钮。

提前致谢。

2 个答案:

答案 0 :(得分:1)

通知选择器require the NSNotification* parameter。将您的代码更改为:

-(id) init
{
    if( (self=[super init])) {
 [[NSNotificationCenter defaultCenter] addObserver:self 
  selector:@selector(viewreloadedeyes:)
      name:@"reloadvieweyes"
    object:nil];
 }
 return self;

}

-(void)viewreloadedeyes:(NSNotification*)notification
{
 CCLOG(@"hiii");
}

答案 1 :(得分:0)

嘿,伙计们,我找到了解决方案,我只是将通知放在视图转换中,就像这样

- (void)switchsounds
{
    CCLOG(@"hiii");

    CCTransitionJumpZoom *transition = [CCTransitionJumpZoom transitionWithDuration:1.0 scene:[HelloWorldLayer scene]];


 [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadvieweyes" object:nil];
    // Tell the director to run the transition


    [[CCDirector sharedDirector] replaceScene:transition];


}

现在它的完美结合了。谢谢。