今天讲了导航控制器UINavigationController
和标签栏视图控制器UITabBarController
先来说一说导航视图控制器 UINavigationController
导航控制器维护着一个视图控制器栈,任何类型的视图控制器都可以放入栈中
UINavigationController分为三部分
从图中可以看出分别为导航按钮,用户自定义内容和最下边的工具按钮。
其实只有中间的部分显示的就是这个导航视图控制器栈中的栈顶的视图
下面是我根据文档写的一些UINavigationController的一些东西
一、遵守的协议UINavigationControllerDelegate
@property(nonatomic,assign)id<UINavigationControllerDelegate>delegate
创建之后都有个委托对象,可以通过委托对象调用自己
二、实例方法
1、initWithNavigationBarClass:toolbarClass:
使用自定义的工具栏来创建并初始化一个导航控制器
2、-(id)initWithRootViewController:(UIViewController *)rootViewController
初始化导航视图控制器,并用rootViewController作为根视图控制器
3、- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
压栈,将一个视图控制器压入到栈顶
4、- (UIViewController*)popViewControllerAnimated:(BOOL)animated
从导航控制器栈中取出栈顶元素
5、- (NSArray*)popToViewController:(UIViewController*)viewControlleranimated:(BOOL)animated
取出从栈顶视图控制器到特定视图控制器viewController 之间的元素
6、- (NSArray*)popToRootViewControllerAnimated:(BOOL)animated
取出除了根视图控制器之外的所有元素
7、-(void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated
设置NavigationBar 按钮隐藏或显示
8、- (void)setToolbarHidden:(BOOL)hidden animated:
(BOOL)animated
与上一个相似,设置Toolbar隐藏或显示
9、- (void)setViewControllers:(NSArray*)viewControllersanimated:(BOOL)animated
用viewControllers取代当前被导航控制器控制的视图
以上就是UINavigationController的所有方法
三、所拥有的属性
topViewController property
导航控制器栈的栈顶元素
visibleViewController property
与当前可见视图相关联的导航控制器栈中的视图控制器
viewControllers property
当前导航控制器所控制的所有视图控制器,它是一个数组
navigationBar property
导航控制器中的导航栏(只读)
navigationBarHidden property
它是一个BOOL值,用来决定navigationBar是否隐藏
delegate property
导航控制器的委托对象
toolbar property
与导航控制器相关联的用户自定义的工具栏
toolbarHidden property
是一个标识,标识着工具栏是否处于隐藏状态