类说明 CANavigationController是CAViewController的子类,它的作用是管理多个CAViewController,我们要明白的是CANavigationController是使用堆栈的方式管理的,即我们每往CANavigationController添加一个CAViewController,则进行一次堆栈的操作,每次移除则进行一次出栈操作。
基类 CAViewController, CANavigationBarDelegate
CANavigationController 属性(点击查看方法介绍)
CANavigationController 方法(点击查看方法介绍)
创建与初始化
bool RootWindow::init()
{
if (!CAWindow::init())
{
return false;
}
//创建Navigation
CANavigationController* _viewController = new CANavigationController();
//创建Navigation的第一个Controller
FirstViewController* first = new FirstViewController();
first->init();
//使用一个controller初始化Navigation(必须)
_viewController->initWithRootViewController(first);
//RootWindow加载Navigation
this->setRootViewController(_viewController);
//释放内存
first->release();
//释放内存
_viewController->release();
return true;
}
样式属性
可控制样式:barItem位置、标题、左按钮、右按钮
bool RootWindow::init()
{
if (!CAWindow::init())
{
return false;
}
//创建Navigation
CANavigationController* _viewController = new CANavigationController();
//创建Navigation的第一个Controller
FirstViewController* first = new FirstViewController();
first->init();
//创建CANavigationBarItem并设置显示标题
CANavigationBarItem* nItem = CANavigationBarItem::create("First");
//创建左边按钮(右边按钮同理)
CABarButtonItem* leftBtn = CABarButtonItem::create("", CAImage::create("source_material/btn_left_white.png"), CAImage::create("source_material/btn_left_blue.png"));
//将leftBtn添加到CANavigationBarItem
nItem->addLeftButtonItem(leftBtn);
//将CANavigationBarItem添加到FirstViewController
first->setNavigationBarItem(nItem);
//使用一个controller初始化Navigation(必须)
//CABarVerticalAlignmentBottom显示在底部
_viewController->initWithRootViewController(first,CABarVerticalAlignmentBottom);
//RootWindow加载Navigation
this->setRootViewController(_viewController);
//释放内存
first->release();
//释放内存
_viewController->release();
return true;
}
主要了解:CABarButtonItem这个类的样式
//根据title创建CANavigationBarItem
static CANavigationBarItem* create(const std::string& title);
//添加左边按钮
void addLeftButtonItem(CABarButtonItem* item);
//添加邮编按钮
void addRightButtonItem(CABarButtonItem* item);
管理 初始化 virtual bool initWithRootViewController(CAViewController* viewController,CABarVerticalAlignment var = CABarVerticalAlignmentTop);
替换
virtual void replaceViewController(CAViewController* viewController, bool animated);
增加
virtual void pushViewController(CAViewController* viewController, bool animated);
移除
/*
*移除栈顶的viewController
*animated:是否播放动画
*/
CAViewController* popViewControllerAnimated(bool animated);
/*
*移除根的viewController
*animated:是否播放动画
*/
void popToRootViewControllerAnimated(bool animated);
/*
*移除第一个viewController
*animated:是否播放动画
*/
CAViewController* popFirstViewController();
/*
*根据索引值移除viewController
*animated:是否播放动画
*/
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 | CABarVerticalAlignment | var = CABarVerticalAlignmentTop | CANavigationBar的现实样式 |
解释:使用CAViewController来初始化,这个是必须的
virtual void replaceViewController(CAViewController* viewController, bool animated); 返回值:void 参数: 类型 | 参数名 | 说明 | CAViewController* | viewController | 新的viewController | bool | animated | 是否播放动画 |
解释:替换栈顶的viewController
virtual void pushViewController(CAViewController* viewController, bool animated); 返回值:void 参数: 类型 | 参数名 | 说明 | CAViewController* | viewController | 新的viewController | bool | animated | 是否播放动画 |
解释:将新的viewController压入栈顶
CAViewController* popViewControllerAnimated(bool animated); 返回值:CAViewController* 参数: 类型 | 参数名 | 说明 | bool | animated | 是否播放动画 |
解释:移除栈顶的viewController
void popToRootViewControllerAnimated(bool animated); 返回值:void 参数: 类型 | 参数名 | 说明 | bool | animated | 是否播放动画 |
解释:移除根的viewController
CAViewController* popFirstViewController(); 返回值:CAViewController* 参数: 解释:移除第一个viewController
CAViewController* popViewControllerAtIndex(int index); 返回值:CAViewController* 参数: 类型 | 参数名 | 说明 | int | index | 移除第几个viewController |
解释:根据索引值移除viewController
CAViewController* getViewControllerAtIndex(int index); 返回值:CAViewController* 参数: 类型 | 参数名 | 说明 | int | index | 获取第几个viewController |
解释:根据索引值获取viewController
CAViewController* getBackViewController(); 返回值:CAViewController* 参数: 解释:返回最后一个ViewController
inline unsigned long getViewControllerCount() ; 返回值:unsigned long 参数: 解释:当前栈内viewController总数
virtual void setNavigationBarHidden(bool hidden, bool animated); 返回值:void 参数: 类型 | 参数名 | 说明 | bool | hidden | 隐藏navigationBar | bool | animated | 是否播放动画 |
解释:是否隐藏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 参数: 解释:到下边界
|
请发表评论