CloudBox CBDialog

这两张UML图是表达我在CloudBox中针对自行开发的Dialog与iOS的UIAlertView的结合

CloudBox CBDialog_第1张图片

首先我实践了一个CBiOSDialogView类,这是一个纯粹的objective-c类继承自NSObject

其中方法有一个-(void)showDialog:(DialogType)type :(NSString*)title :(NSString*)msg

以及另一个alertViewClick的事件来接收UIAlertView的按键事件

里面的代码只是很简单的就只是产生UIAlertView及绑定delegate

事件也只是将DialogResult及clickIndex丢出给CBDialogManager

在整体概念中,CBDialog是一个抽象类,CBSystemDialog则是一个针对系统内建AlertView(如iOS的UIAlertView或Android的AlertDialog)接口

在iOS中我实践了CBiOSDialog类作为针对iOS的实践,CBiOSDialog是一个C++类,作为一个区隔,隔开了CBSystemDialog与CBiOSDialogView

以维持在CBSystemDialog中统一为C/C++代码

CBDialogManager则为一个管理类,当CBDialog的衍生类实践showDialog方法并在其中呼叫registerDialog类

就会将该Dialog注册至管理类中,而在CBiOSDialogView中会直接透过管理类,将系统讯息转接抛出到相对应的Delegate中

如同下图所示,最终Delegate的目标为TestScene

CloudBox CBDialog_第2张图片


你可能感兴趣的:(ios,C++,android,dialog,UML)