您的位置:首页 > 移动开发 > IOS开发

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

2015-09-23 14:47 405 查看
导航控制器常用函数触发时机

当视图控制器的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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: