zoukankan      html  css  js  c++  java
  • navigationItem与navigationController关系

    在Appdelegate中这样设置后

    ViewController *vc = [[ViewController alloc]init];
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
    self.window.rootViewController = nav;

    然后在ViewController中有这样的

    可以看出navigationItem和navigationController是平级的
    但如下写又有

    但实际上UINavigationtroller并没有navigationItem这样直接的一个属性,因为UINavigationtroller继承自UIViewController,而UIViewController是有navigationItem这个属性的,所以才会出现如上的情况。
    因此如下设置是没有效果的。

    self.navigationController.navigationItem.title = @"这是没有效果的";

    正确的是

    self.title = @"";

    self.navigationItem.title = @"大王";

    这两个是等价的。

    //修改导航栏上左右按钮的字体颜色
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    //修改导航栏背景色
    self.navigationController.navigationBar.barTintColor = [UIColor purpleColor];
    
    //设置导航栏左右按钮    
    UIBarButtonItem *leftBar = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil];
    UIBarButtonItem *rightBar = [[UIBarButtonItem alloc]initWithTitle:@"下一页" style:UIBarButtonItemStylePlain target:self action:@selector(goToNewController)];
    self.navigationItem.leftBarButtonItem = leftBar;
    self.navigationItem.rightBarButtonItem = rightBar;

    效果如下:

    修改导航栏背景或左右按钮颜色

    ①单独设置某一按钮颜色,可以用

    self.navigationItem.rightBarButtonItem.tintColor = [UIColor blackColor];

    ②统一修改左右按钮颜色

    self.navigationController.navigationBar.tintColor = [UIColor redColor];

  • 相关阅读:
    创业日记-时间过的也快也慢
    通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
    Sandcastle是什么
    使用VisualSVN Server自动发布站点
    Microsoft Visual Studio Ultimate 2015 Preview使用笔记
    俞敏洪:自卑比狂妄更糟糕
    灰度发布
    TLV格式是什么格式
    zend studion实现自动换行
    数字格式化,从右往左每隔三位加逗号的四种方法
  • 原文地址:https://www.cnblogs.com/Apologize/p/4998070.html
Copyright © 2011-2022 走看看