当前位置:K88软件开发文章中心编程语言APP编程CrossApp → 文章内容

CAViewController(视图控制器)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 13:52:32

由 ?﹏???ζ???﹏﹏? 创建, 最后一次修改 2016-09-08 类说明CAViewController是CrossApp中MVC中的C(控制器),它的作用是用于CAView的管理、控制视图及CAViewController之间的通信与协调。CAViewController是所有CrossApp中Controller的基类。基类CAContentContainer, CAKeypadDelegateCAViewController 属性(点击查看方法介绍)属性方法Title标题NavigationController获取NavigationControllerNavigationBarItem获取NavigationBarItemTabBarController获取TabBarControllerTabBarItem获取TabBarItemCAViewController 方法(点击查看方法介绍)方法说明init初始化getNibName返回类型的名称isViewRunning当前View是否再运行setNavigationBarItem设置CANavigationBarItem属性setTabBarItem设置CATabBarItem属性presentModalViewController弹出一个CAViewControllerdismissModalViewController移除CAViewControllerisKeypadEnabled设置监听物理返回键setKeypadEnabled设置监听物理返回键getView获取当前CAViewController的View根节点nextResponder获得下个监听者ccTouchBegan触摸事件开始时的回调函数ccTouchMoved触摸事件中触点移动时的回调函数ccTouchEnded触摸事件结束时的回调函数ccTouchCancelled触摸非正常结束时的回调函数。(例如:电话或锁屏)viewDidLoad当前控制器的view被加载完毕后调用viewDidUnload当前控制器的view被移除掉时调用viewDidAppear显示时被调用viewDidDisappear隐藏时被调用reshapeViewRectDidFinish当前view被修改大小时被自动调用keyBackClickedback键响应函数(android平台)keyMenuClickedmenu键响应函数(android平台)addViewFromSuperview将自己添加到根节点ViewremoveViewFromSuperview将自己从根节View点移除生命周期viewDidLoad() //第一次被加载时调用(仅有一次会被调用)viewDidAppear() //显示时被调用(例如TableController切换到显示)viewDidDisappear() //隐藏时被调用(例如TableController切换到其他ControllerviewDidUnload() //移除时被调用(仅有一次会被调用)注意:Window直接加载的CAViewController显示时不会调用viewDidAppear()函数CAViewController之间的管理切换如果CAViewController是直接被CAWindow所加载的,那么它就可以直接使用presentModalViewController(CAViewController* controller, bool animated);来跳转到新的CAViewController,或通过dismissModalViewController(bool animated);对当前的CAViewController关闭。嵌套CAViewController是可以相互嵌套管理的,例如CATableController可以管理多个其他的CAViewController.例如:bool RootWindow::init(){ if (!CAWindow::init()) { return false; } CAViewController* controller1 = new CAViewController(); CAViewController* controller2 = new CAViewController(); CAViewController* controller3 = new CAViewController(); CAViewController* controller4 = new CAViewController(); CAVector<CAViewController*> vec; vec.pushBack(controller1); vec.pushBack(controller2); vec.pushBack(controller3); vec.pushBack(controller4); //创建一个CATabBarController CATabBarController* tabBarController = new CATabBarController(); //将CAVector<CAViewController*>添加到CATabBarController tabBarController->initWithViewControllers(vec); //将tabBarController添加到当前的Window this->setRootViewController(tabBarController); //释放内存 controller1->release(); controller2->release(); controller3->release(); controller4->release(); tabBarController->release();}这样就使用CATabBarController来管理CAViewController的显示与隐藏了CAView的管理一般我们会把逻辑代码写到viewDidLoad()方法中,我回把所要显示的CAView通过this->getView()->addSubview(CrossApp::CAView *child);添加到m_pView的子节点上。例如:void CopybookViewController::viewDidLoad(){ _winRect = this->getView()->getBounds(); CAImageView* imageView = CAImageView::createWithImage(CAImage::create("r/HelloWorld.png")); imageView->setImageViewScaleType(CAImageViewScaleTypeFitImageCrop); imageView->setFrame(_winRect); this->getView()->addSubview(imageView);}CAViewController 属性 Title类型:std::string解释:标题。set/get{}。    NavigationController类型:CANavigationController*解释:获取NavigationController属性。get{}。NavigationBarItem类型:CANavigationBarItem*解释:获取NavigationBarItem属性。get{}。TabBarController类型:CATabBarController*解释:获取TabBarController。get{}。TabBarItem类型:CATabBarItem*解释:获取TabBarItem。get{}。CAViewController 方法virtual bool init();返回值:bool参数:解释:初始化,默认返回true,如果返回false则初始化失败const char* getNibName();返回值:const char*参数:解释:返回类型的名称bool isViewRunning();返回值:bool参数:解释:当前View是否再运行void setNavigationBarItem(CANavigationBarItem* item); 返回值:void参数:类型参数名说明CANavigationBarItem*item项目解释:设置CANavigationBarItem属性(只有被CANavigationController管理才会显示)void setTabBarItem(CATabBarItem* item);返回值:void参数:类型参数名说明CANavigationBarItem*item项目解释:设置CATabBarItem属性(只有被CATableController管理才会显示)void presentModalViewController(CAViewController* controller, bool animated);返回值:void参数:类型参数名说明CAViewController*controller要弹出的CAViewControllerboolanimated是否需要弹出动画解释:弹出一个CAViewControllervoid dismissModalViewController(bool animated);返回值:void参数:类型参数名说明boolanimated是否需要动画解释:移除CAViewControllervirtual bool isKeypa

[1] [2]  下一页


CAViewController(视图控制器)