UINavigationController 导航控制器 ,根据文档写的一些东西

今天讲了导航控制器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

是一个标识,标识着工具栏是否处于隐藏状态

写给自己看,若有错误欢迎指正。 —— LC

 

原文地址:https://www.cnblogs.com/fuhaots2009/p/3469134.html