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

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) 导航条添加一个U I Button
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];


隐藏导航条返回按钮

方法1、在上一级界面即将跳转的时候

UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
    temporaryBarButtonItem.title = @"";
     self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
     [temporaryBarButtonItem release]; 

方法2、

self.navigationItem.hidesBackButton = YES



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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值