iOS导航控制器常用函数与navigationBar常用属性

来源:互联网 发布:淘宝有官方教程吗 编辑:程序博客网 时间:2024/05/17 07:57
导航控制器常用函数触发时机

当视图控制器的View将要出现时触发

- (void)viewWillAppear:(BOOL)animated

当视图控制器的View已经出现时触发

- (void)viewDidAppear:(BOOL)animated

当视图控制器的View将要消失时触发

- (void)viewWillDisappear:(BOOL)animated

当视图控制器的View已经消失时触发

- (void)viewDidDisappear:(BOOL)animated


当由前一个界面,push下一个界面时,如A pushB,四个方法执行顺序A(ViewWillDisappear)>B(viewWillAppear)>A(viewDidDisappear)>B(viewDidAppear)

当由后一个界面pop前一个界面时,如B popA,四个方法执行顺序B(viewWillDisappear)>A(viewWillAppear)>B(viewDidDisappear)>A(viewDidAppear)

navigationBar常用属性
一.对navigationBar直接配置,所以该操作对每一界面navigationBar上显示的内容都会有影响(效果是一样的)
1.修改navigationBar颜色

self.navigationController.navigationBar.barTintColor = [UIColorredColor];

2.关闭navigationBar的毛玻璃效果

self.navigationController.navigationBar.translucent =NO;

3.将navigationBar隐藏掉

self.navigationController.navigationBarHidden = YES;

4.给navigationBar设置图片

不同尺寸的图片效果不同:
1.320 * 44,只会给navigationBar附上图片

2.高度小于44,以及大于44且小于64:会平铺navigationBar以及状态条上显示

3.高度等于64:整个图片在navigationBar以及状态条上显示


[self.navigationController.navigationBarsetBackgroundImage:[UIImage imageNamed:@"32050"]forBarMetrics:UIBarMetricsDefault];

二.为每一个界面的navigationBar上显示的内容单独定制(每个界面显示内容不一样)
单独定制,修改视图控制器的navigationItem

1.设置界面的title
self.navigationItem.title = @"远东大开发”;
2.修改titleView(中间显示视图)
UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:@[@"分组", @"好友"]]; self.navigationItem.titleView =segment;[segment release];
3.修改navigationBar的颜色self.navigationController.navigationBar.barTintColor= [UIColor whiteColor];

4.修改navigationBar,右边显示内容
UIBarButtonItem *right = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:selfaction:@selector(add:)];

self.navigationItem.rightBarButtonItem = right;

[right release];
5.修改navigationBar,左侧显示内容
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:selfaction:@selector(add:)];

self.navigationItem.leftBarButtonItem = left;

[left release];





将NavigationBar设置透明(仅将指定视图控制器进行透明处理),步骤如下:
1.在视图控制器的头文件中实现UINavigationControllerDelegate
例如:@interface PicturePreviewViewContro
ller: UIViewController<<span style="color: rgb(255, 0,0);">UINavigationControllerDelegate>
2.在实现类中加入这个代理的方法及具体操作如下:
- (void)navigationController:(UINavigationController *)navigationControllerwillShowViewController:(UIViewController *)viewControlleranimated:(BOOL)animated {
   // 如果进入的是当前视图控制器
   if (viewController == self) {
       // 背景设置为黑色
       self.navigationController.navigationBar.tintColor = [UIColorcolorWithRed:0.000 green:0.000 blue:0.000 alpha:1.000];
       // 透明度设置为0.3
       self.navigationController.navigationBar.alpha = 0.300;
       // 设置为半透明
       self.navigationController.navigationBar.translucent =YES
   } else {
   //进入其他视图控制器
       self.navigationController.navigationBar.alpha = 1;
      // 背景颜色设置为系统默认颜色  
       self.navigationController.navigationBar.tintColor = nil;
       self.navigationController.navigationBar.translucent =NO; 
   }
}
0 0
原创粉丝点击