iOS学习笔记-7 UINavigationController定制

来源:互联网 发布:鹅绒比鸭绒暖和吗 知乎 编辑:程序博客网 时间:2024/06/14 08:21

UINavigationController在视图切换中起着非常重要的作用。

这里自己定制一个UINavigationController的对象,首先来了解下UINavigationController的结构组成:UINavigation bar, UINavigation view ,UINavigation toolbar........

这里先定制UINavigationBar

关键代码如下:

 //初始化的navigationController    //Metrics指标有两种:UIBarMetricsDefault,UIBarMetricsLandscapePhone,    UINavigationBar *naviBar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];    [naviBar setBackgroundImage:[UIImage imageNamed:@"top_navi"] forBarMetrics:UIBarMetricsDefault];    [naviBar setBarStyle:UIBarStyleDefault];        //设置navigationItem    UINavigationItem *naviItem = [[UINavigationItem alloc]init];    naviItem.title = @"firstView";    //设置UIBarButtonItem对象barButtonItem    UIImage *imageBtn = [UIImage imageNamed:@"top_camera"];    UIButton *AlertBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];    [AlertBtn setFrame:CGRectMake(0, 0, imageBtn.size.width, imageBtn.size.height)];    [AlertBtn setTitle:@"Alert" forState:UIControlStateNormal];    //点击AlertBtn,触发cancelAction事件    [AlertBtn addTarget:self action:@selector(cancelAction) forControlEvents:UIControlEventTouchUpInside];    [AlertBtn setShowsTouchWhenHighlighted:YES];    [naviBar pushNavigationItem:naviItem animated:YES];    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc]initWithCustomView:AlertBtn];    [naviItem setRightBarButtonItem:barButtonItem];    [self.view addSubview:naviBar];


思路:

首先定制UINavigationBar,定制它的大小

然后定制UINavigationItem,包括它的主题视图titleView,rightBarButtonItem等等,并定义了UIBarButtonItem对象的触发方法。

效果如下:


原创粉丝点击