popScene 后就黑屏

刚开始学Cocos2dx,就是用的HelloWorld的例子,自己加了SecondScene,做切换场景,HelloWorld里改为pushScene,在SecondScene里,加了个按钮执行popScene,但是一执行popScene,就黑屏了,没有实现返回上一场景的效果,请指点一下。
HelloWorld里修改的代码:

//ios平台
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
//    exit(0);
    CCDirector::sharedDirector()->pushScene(SecondScence::scene());
#endif


```

SecondScene代码:
#include "SecondScence.h"
USING_NS_CC;

 CCScene* SecondScence::scene(){
     CCScene* scene=CCScene::create();
     SecondScence* layer = SecondScence::create();
     scene->addChild(layer);
     return scene;
}

bool SecondScence::init(){
    CCLabelTTF* label = CCLabelTTF::create("hfiejfeiojfoej", "Arial", 30);
    label->setPosition(ccp(200,200));
    this->addChild(label);
    
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
    "CloseNormal.png",
                                                          "CloseSelected.png",
                                                          this,
                                                          menu_selector(SecondScence::popScene));
    pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width-20, 20));
    
    CCMenu *pMenu = CCMenu::create(pCloseItem,NULL);
    pMenu->setPosition(CCPointZero);
    this->addChild(pMenu,1);
    
    return true;
    
}

void SecondScence::popScene(CCObject* pSender){
    CCDirector::sharedDirector()->popScene();
    
}




```

我用的是cocos2dx 2.2
调试窗口打印了这样一条信息:Cocos2d: cocos2d: deallocing CCDirector 0x6906f0

切换场景一般使用 CCDirector::sharedDirector()->replaceScene;

pop和push,不知道你使用的时候哪里不太正确。我这里,在 hello里面的点击事件里使用push,可以切换到第二个场景。
然后在第二个场景的点击事件里面 pop,可以切换的hello场景里面。来回切换都没有问题。

//第一个场景
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->pushScene(TDict::scene());
}
//第二个场景
void TDict::onClick(CCObject* pSender)
{
    CCDirector::sharedDirector()->popScene();
}

```

只push了一个scene,你又pop一个scene,肯定显示黑屏啊,使用push和pop前,请保证你的Director至少push了2个以上的scene

在appdelegate里面有:
pDirector->runWithScene(pScene);
在runScene里面是有pushScene的。 hello里面再push一个scene,就是两个了。这个没问题。
不过,我是觉得push和pop在director里面自己管理就行啦,外面调用 runWithScene和replaceScene
把push和pop暴露出来,可能是方便某些特殊的需求。一般情况下,用 runWithScene和replaceScene就可以了。