立即注册 找回密码

微雪课堂

搜索

7.TouchGFX界面应用多屏幕传参

2019-11-4 20:29| 发布者: Ezio_神仙醋| 查看: 6160| 评论: 0

摘要: 上一节使用TouchGFX的handleTickEvent机制做了的计数器,但是有一个缺陷,在切换屏幕后再切换回来计数器归零了,如果我想这个计数器在任意时刻都在计数,哪怕切换的屏幕还是在计数。首先需要知道为什么计数器会归零 ...
上一节使用TouchGFX的handleTickEvent机制做了的计数器,但是有一个缺陷,在切换屏幕后再切换回来计数器归零了,如果我想这个计数器在任意时刻都在计数,哪怕切换的屏幕还是在计数。首先需要知道为什么计数器会归零,原因是TouchGFX使用的是MVP框架,在MVP框架中所有数据仅能保存在称为 Model 的类对象中,Presenter是视图(View)与Model之间的纽带,View只能通过Presenter来读取数据。这个框架可以在VC工程中可以看出。

MVP框架所有需要保存的数据必须再Model 的类对象,我们之前说明的数据都是再View类里面,所以在切换屏幕后所有的数据全部丢失了。

前面说了数据都是再View类切换屏幕后丢掉了类里面的变量,那我设置成全局变量就可以了。

这样哪怕我切换了,数据还是在那里,但是怎么传参呢,定义在.hpp文件里面使用external关键字,都是这样就违背了MVP框架,我们不建议这样做,而且乱调用.hpp文件容易导致冲突,那我还是在Model 的类对象定义变量。找到Model.hpp文件,添加2个公有成员变量,再写读取和写入函数。

再Model.cpp里面赋初始值。

View不能直接读写Model中的数据,必须得通过Presenter来操作,所以先要在Presenter中实现对数据的读写,在Screen2Presenter.hpp正添加读写函数。同样在Screen1Presenter.hpp也添加一样的函数。

在屏幕1添加一个文本框,同样添加通配符,建议字体都选择一样的。

在Screen2View和Screen1View中添加滴答定时函数声明定义。



启动模拟器,切换屏幕反应有点慢,在第一次进入handleTickEvent时候就应该更新显示(这里不做演示了)。



172

顶一下

刚表态过的朋友 (172 人)

最新评论

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-3-28 16:44 , Processed in 0.014596 second(s), 16 queries .

返回顶部