今天遇到一个bug,从page a 通过确定按钮进入page b 后,通过触摸屏点击page b的return按钮可以正常返回原面板,通过点击回车键(默认回车键就是界面中右下角的返回键)这会返回page a后又跳回page b。这个现象有时出现有时不出现,后来找到规律,只有通过点击按钮进入b page后不做任何点击事件,马上按回车键就会出现。
进而打印bug,原来a page中的确定按钮在进入b page后activeself 设为false后,从b page通过回车键返回又会执行一次确定按钮的响应事件。原来UICamera的focus还在这个按钮上,而NGUI的UICamer脚本中有默认的Submit Button(回车键Keycode.Return 手柄按键0),点击回车键相当于提交确定一次,而page中的按钮也是判断回车键事件,所以在点击确定按钮后不通过点击其他地方改变focus,而是直接点击回车键时,相当于代码中自己判断点击一次,ngui又判断确定一次上一个焦点的按钮,所以就会出现这个莫名的bug。