cocos2dx 3.2如何做弹框选择

我在一个窗口上MainLayer,做了一个弹框提示PopupLayer,有几个按钮,如:回到主界面,重新开始,继续游戏。
在MainLayers可以弹出小框,但是怎样把PopupLayer的上,所点击按钮的结果回调到MainLayers

在点击PopupLayer某个按钮时,我想执行对应的功能。但是点击了,在PopupLayer如何实现几个功能,并把结果返回到MainLayer上

求大神解救

在MainLayer上定义这个函数xxx, 给 PopupLayer 加上回调函数 : void setCallBackFunctions(std::function<void(int)> INcallbackFunction); 在打开PopupLayer的时候将这个函数传递进去,然后PopupLayer点击事件调用此函数,就OK了

你的意思我明白了,但是为什么我在PopupLayer调用时,参数写10,returnback(10);
在MainLayer上getCallback(int bk) 输出参数值是不对的?
调用是这样的
popuplayer sl = setCallBack(std::bind(&CGameLayer::GetCallBak, this, 1));
因为函数带参数,后面那个1不写,提示参数不对;写上去输出参数就是这个默认值
为什么不能覆盖这个值吗?

popuplayer sl = popuplayer::create();//实例化(只是例子,当然你自己的代码有你自己的实例化方式)
sl->setCallBack(CC_CALLBACK_1(CGameLayer::GetCallBak, this));// 设置
多看一下测试例子就明白了

建议你利用NotificationCenter通知中心来做,
首先先在MainLayer中加入
NotificationCenter::getInstance()->addObserver(this, callfuncO_selector(MainLayer::doNothing), “notifiName”, nullptr);
再在PopupLayer的按钮响应事件中加入
NotificationCenter::getInstance()->postNotification(“notifiName”);
记得MainLayer的onExit()中或者析构中需要调用
NotificationCenter::getInstance()->removeObserver(this,“notifiName”)

回调函数的实现不同,我是使用c++的,你是使用cocos宏,最终代码还是通过c++ 的std::bind实现
谢谢你的帮助

你的建议我也尝试过了,在函数的参数上doNothing(Ref* ref)需要这种形式。在使用上,需要进行类型转换
在使用回调函数或者Notification这种事件通知,会各有好处
谢谢你的建议