IOS--导航控制器小结

1,一个UINavigationController对应一个NavigationBar实例,

2,一个UINavigationController可以包含多个UIViewController,

3,每一个UIViewController对应一个UINavigationItem实例,

4,UINavigationItem控制器控制多个UIBarButtonItem(2个),

5,一个UINavigationController控制着一个UIToolBar实例,

6,UIToolBar中的UIBarButtonItem由当前的试图控制器管理,而不是由导航控制器控制。

一,自定义导航栏:

我们知道导航栏的背景颜色可以通过“tinitColor”来设置。如果需要设置背景,则需要通过类别修改drawRect方法,

5.0以上的SDK提供了设置背景图片的方法,需要考虑版本兼容的问题:

IOS--导航控制器小结_第1张图片

二,导航控制器的维托方法:

导航控制器的委托方法UINavigationControllerDelegate,通过设置代理监听视图控制器的切换。

IOS--导航控制器小结_第2张图片

三,导航控制器中的工具栏:

IOS--导航控制器小结_第3张图片

导航控制器中的UIToolBar

在导航控制器中会带有一个UIToolBar的实例,但默认是隐藏的,可以通过如下方式将其打开:

//显示导航控制器工具栏:

[self.navigationController  setToolbarHidden:NO animated:YES];

这里需要注意,与UINavigationBar类似,导航控制器只拥有一个UIToolBar实例,但UIToolBar所拥有的UIBarButtonItem实例,是由试图控制器管理的。如下代码:

四:导航控制器常用属性与方法:

IOS--导航控制器小结_第4张图片

五,定制导航栏:

通过NavigationItem的titleView属性,定制标题视图。titleView属性是一个视图类,因此可以添加一个UIView的实例,也可以添加UIView的子类,如图:

定制左右栏目:

通过对导航栏的结构我们了解到NavigationItem实例中有一个leftBarButtonItem和rightBarButtonItem,而这两个属性又是UIBarButtonItem的实例,因此,通过初始化UIBarButtonItem实例设置导航栏的左右栏目项。

自定义左右栏目的常用方法:

IOS--导航控制器小结_第5张图片

//设置导航栏颜色:

self.navigationController.navigationBar.tiniColor = [UIColor redColor];

//设置导航栏提示用户内容

self.navigationItem.prompt = @"加载";

//取消提示

self.navigationItem.prompt =nil;

你可能感兴趣的:(IOS--导航控制器小结)