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

IOS系列——导航条的多种操作

2014-03-07 17:11 274 查看
1)导航控制器的创建及导航条颜色、背景图片的设置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
//    self.window.rootViewController = self.viewController;

//创建导航控制器
UINavigationController *nvc=[[[UINavigationController alloc]initWithRootViewController:vc]autorelease];
self.window.rootViewController=nvc;

//修改颜色
//    nvc.navigationBar.tintColor=[UIColor blueColor];
//修改NAvigationBar的背景图片
//获取背景图片
NSString *str=[[NSBundle mainBundle]pathForResource:@"navigationbar_background" ofType:@"png"];
UIImage *barImg=[[UIImage alloc]initWithContentsOfFile:str];
//设置背景图片
[nvc.navigationBar setBackgroundImage:barImg forBarMetrics:UIBarMetricsDefault];

[self.window makeKeyAndVisible];
return YES;
}


2)导航条添加一个UITextField

//如果存在导航控制器,则设置导航条
if (self.navigationController)
{
//创建一个UITextField
UITextField *txtURL=[[[UITextField alloc]initWithFrame:CGRectMake(10, 5, 200, 25)]autorelease];
//将txt改为圆角
txtURL.borderStyle=UITextBorderStyleRoundedRect;
//设置字体大小
txtURL.font=[UIFont systemFontOfSize:12];
//设置提示
txtURL.placeholder=@"请输入网址";
//设置键盘的return类型为GO
txtURL.returnKeyType=UIReturnKeyGo;
//设置代理
txtURL.delegate=self;
self.txtURL=txtURL;

//创建UIBarButtonItem,添加self.txtURL
UIBarButtonItem *txtURLBtn=[[[UIBarButtonItem alloc]initWithCustomView:self.txtURL]autorelease];
//设置导航条的左侧按钮
self.navigationItem.leftBarButtonItem=txtURLBtn;
}


3)导航条添加一个UIButton
UIButton *cancelBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
//设置按钮的位置
cancelBtn.frame=CGRectMake(200, 5, 80, 25);
//设置按钮的title
[cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
UIBarButtonItem *rightBtn=[[[UIBarButtonItem alloc]initWithCustomView:cancelBtn]autorelease];
self.navigationItem.rightBarButtonItem=rightBtn;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(searchView:)];


无论是设置self.navigationItem.leftBarButtonItem.title =@"返回";还是self.navigationItem.backBarButtonItem.title
=@"返回";都没有效果,title文本始终不会发生变化。到网上乱搜一通后,得到了以下解决方法,相对来说比较简单
在第一级页面的viewDidLoad方法中加入以下代码:
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"返回";
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
[temporaryBarButtonItem release];


也就是用一个新的按钮在进行导航前将原来的返回按钮替换掉就可以了。

要求导航栏的返回按钮只保留那个箭头,去掉后边的文字,在网上查了一些资料,最简单且没有副作用的方法就是

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];


设置导航条颜色要和背景色 左右按钮的颜色

self.navigationController.navigationBar.barTintColor = MAINCOLOR;			//导航条颜色
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];		//导航条按钮颜色
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName, nil]];  //导航条title文字颜色


如果有多个按钮,设置某一个按钮颜色可以使用
self.itemSave.tintColor = [UIColor blackColor];


更多运用 在: http://blog.csdn.net/hufengvip/article/details/17193359
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: