课程表

入门与环境搭建

简单控件的使用

视图控制

调用、存储、网络和动画

其他控件的使用

工具箱
速查手册

导航控制器

当前位置:免费教程 » 移动开发 » CrossApp

类说明

CANavigationController是CAViewController的子类,它的作用是管理多个CAViewController,我们要明白的是CANavigationController是使用堆栈的方式管理的,即我们每往CANavigationController添加一个CAViewController,则进行一次堆栈的操作,每次移除则进行一次出栈操作。


基类

CAViewController, CANavigationBarDelegate


CANavigationController 属性(点击查看方法介绍)

属性说明
NavigationBarHidden导航栏隐藏
TouchMoved触摸移动
NavigationBarBackGroundImage导航栏背面图像
NavigationBarBackGroundColor导航栏背面颜色
NavigationBarTitleColor导航栏标题颜色
NavigationBarButtonColor导航栏按钮颜色


CANavigationController 方法(点击查看方法介绍)

方法
说明
initWithRootViewController使用CAViewController来初始化,这个是必须的
replaceViewController替换栈顶的viewController
pushViewController将新的viewController压入栈顶
popViewControllerAnimated移除栈顶的viewController
popToRootViewControllerAnimated移除根的viewController
popFirstViewController移除第一个viewController
popViewControllerAtIndex根据索引值移除viewController
getViewControllerAtIndex根据索引值获取viewController
getBackViewController返回最后一个ViewController
getViewControllerCount当前栈内viewController总数
setNavigationBarHidden是否隐藏navigationBar
updateItem更新navigationBarItem
ccTouchBegan触摸事件开始时的回调函数
ccTouchMoved触摸事件中触点移动时的回调函数
ccTouchEnded触摸事件结束时的回调函数
ccTouchCancelled触摸非正常结束(例如:电话或锁屏)
isReachBoundaryLeft到左边界
isReachBoundaryRight到右边界
isReachBoundaryUp到上边界
isReachBoundaryDown到下边界



创建与初始化

  1. bool RootWindow::init()
  2. {
  3. if (!CAWindow::init())
  4. {
  5. return false;
  6. }
  7. //创建Navigation
  8. CANavigationController* _viewController = new CANavigationController();
  9. //创建Navigation的第一个Controller
  10. FirstViewController* first = new FirstViewController();
  11. first->init();
  12. //使用一个controller初始化Navigation(必须)
  13. _viewController->initWithRootViewController(first);
  14. //RootWindow加载Navigation
  15. this->setRootViewController(_viewController);
  16. //释放内存
  17. first->release();
  18. //释放内存
  19. _viewController->release();
  20. return true;
  21. }

样式属性

可控制样式:barItem位置、标题、左按钮、右按钮

  1. bool RootWindow::init()
  2. {
  3. if (!CAWindow::init())
  4. {
  5. return false;
  6. }
  7. //创建Navigation
  8. CANavigationController* _viewController = new CANavigationController();
  9. //创建Navigation的第一个Controller
  10. FirstViewController* first = new FirstViewController();
  11. first->init();
  12. //创建CANavigationBarItem并设置显示标题
  13. CANavigationBarItem* nItem = CANavigationBarItem::create("First");
  14. //创建左边按钮(右边按钮同理)
  15. CABarButtonItem* leftBtn = CABarButtonItem::create("", CAImage::create("source_material/btn_left_white.png"), CAImage::create("source_material/btn_left_blue.png"));
  16. //将leftBtn添加到CANavigationBarItem
  17. nItem->addLeftButtonItem(leftBtn);
  18. //将CANavigationBarItem添加到FirstViewController
  19. first->setNavigationBarItem(nItem);
  20. //使用一个controller初始化Navigation(必须)
  21. //CABarVerticalAlignmentBottom显示在底部
  22. _viewController->initWithRootViewController(first,CABarVerticalAlignmentBottom);
  23. //RootWindow加载Navigation
  24. this->setRootViewController(_viewController);
  25. //释放内存
  26. first->release();
  27. //释放内存
  28. _viewController->release();
  29. return true;
  30. }



主要了解:CABarButtonItem这个类的样式

  1. //根据title创建CANavigationBarItem
  2. static CANavigationBarItem* create(const std::string& title);
  3. //添加左边按钮
  4. void addLeftButtonItem(CABarButtonItem* item);
  5. //添加邮编按钮
  6. void addRightButtonItem(CABarButtonItem* item);

管理

初始化

  1. virtual bool initWithRootViewController(CAViewController* viewController,CABarVerticalAlignment var = CABarVerticalAlignmentTop);

替换

  1. virtual void replaceViewController(CAViewController* viewController, bool animated);

增加

  1. virtual void pushViewController(CAViewController* viewController, bool animated);

移除

  1. /*
  2. *移除栈顶的viewController
  3. *animated:是否播放动画
  4. */
  5. CAViewController* popViewControllerAnimated(bool animated);
  6. /*
  7. *移除根的viewController
  8. *animated:是否播放动画
  9. */
  10. void popToRootViewControllerAnimated(bool animated);
  11. /*
  12. *移除第一个viewController
  13. *animated:是否播放动画
  14. */
  15. CAViewController* popFirstViewController();
  16. /*
  17. *根据索引值移除viewController
  18. *animated:是否播放动画
  19. */
  20. CAViewController* popViewControllerAtIndex(int index);


CANavigationController 属性

NavigationBarHidden

类型:bool

解释:导航栏隐藏。is{}。


 TouchMoved

类型:bool

解释:触摸移动。is/set{}。    


NavigationBarBackGroundImage

类型:CAImage*,

解释:导航栏背面图像。set/get{}。


NavigationBarBackGroundColor

类型:CAColor4B

解释:导航栏背面颜色。set/get{}。


NavigationBarTitleColor

类型:CAColor4B

解释:导航栏标题颜色。set/get{}。


NavigationBarButtonColor

类型:CAColor4B

解释:导航栏按钮颜色。set/get{}。


CANavigationController 方法

virtual bool initWithRootViewController(CAViewController* viewController,CABarVerticalAlignment var = CABarVerticalAlignmentTop);

返回值:bool

参数:

类型参数名说明
CAViewController*viewController初始化CAViewController
CABarVerticalAlignmentvar = CABarVerticalAlignmentTopCANavigationBar的现实样式

解释:使用CAViewController来初始化,这个是必须的

                                      

virtual void replaceViewController(CAViewController* viewController, bool animated);

返回值:void

参数:

类型参数名说明
CAViewController*viewController新的viewController
boolanimated是否播放动画

解释:替换栈顶的viewController


      

virtual void pushViewController(CAViewController* viewController, bool animated);

返回值:void

参数:

类型参数名说明
CAViewController*viewController新的viewController
boolanimated是否播放动画

解释:将新的viewController压入栈顶


CAViewController* popViewControllerAnimated(bool animated);

返回值:CAViewController*

参数:

类型参数名说明
boolanimated是否播放动画

解释:移除栈顶的viewController


void popToRootViewControllerAnimated(bool animated);

返回值:void

参数:

类型参数名说明
boolanimated是否播放动画

解释:移除根的viewController


CAViewController* popFirstViewController();

返回值:CAViewController*

参数:

解释:移除第一个viewController


CAViewController* popViewControllerAtIndex(int index);

返回值:CAViewController*

参数:

类型参数名说明
intindex移除第几个viewController

解释:根据索引值移除viewController


CAViewController* getViewControllerAtIndex(int index);

返回值:CAViewController*

参数:

类型参数名说明
intindex获取第几个viewController

解释:根据索引值获取viewController


CAViewController* getBackViewController();

返回值:CAViewController*

参数:

解释:返回最后一个ViewController


inline unsigned long getViewControllerCount() ;

返回值:unsigned long

参数:

解释:当前栈内viewController总数


virtual void setNavigationBarHidden(bool hidden, bool animated);

返回值:void

参数:

类型参数名说明
boolhidden隐藏navigationBar
boolanimated是否播放动画

解释:是否隐藏navigationBar


void updateItem(CAViewController* viewController);

返回值:void

参数:

类型参数名说明
CAViewController*viewController更新navigationBarItem

解释:更新navigationBarItem


virtual bool ccTouchBegan(CATouch *pTouch, CAEvent *pEvent);

返回值:bool

参数:

类型参数名说明
CATouch*pTouch触摸传递对象
CAEvent*pEvent此参数待定

解释:触摸事件开始时的回调函数

   

virtual void ccTouchMoved(CATouch *pTouch, CAEvent *pEvent);

返回值:void

参数:

类型参数名说明
CATouch*pTouch触摸传递对象
CAEvent*pEvent此参数待定

解释:触摸事件中触点移动时的回调函数

  

virtual void ccTouchEnded(CATouch *pTouch, CAEvent *pEvent);

返回值:void

参数:

类型参数名说明
CATouch*pTouch触摸传递对象
CAEvent*pEvent此参数待定

解释:触摸事件结束时的回调函数


virtual void ccTouchCancelled(CATouch *pTouch, CAEvent *pEvent);

返回值:void

参数:

类型参数名说明
CATouch*pTouch触摸传递对象
CAEvent*pEvent此参数待定

解释:触摸非正常结束时的回调函数。(例如:电话或锁屏)


virtual bool isReachBoundaryLeft();

返回值:virtual bool

参数:

解释:到左边界


virtual bool isReachBoundaryRight();

返回值:virtual bool

参数:

解释:到右边界


virtual bool isReachBoundaryUp();

返回值:virtual bool

参数:

解释:到上边界


virtual bool isReachBoundaryDown();

返回值:virtual bool

参数:

解释:到下边界



转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号