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];

  • 相关阅读:
    【USACO18JAN】MooTube G
    【JSOI2008】星球大战
    【ECF#87】小结
    【NOIP2013】火柴排队
    【USACO04OPEN】MooFest G
    【NOI OL #2】T3 游戏
    【NOI OL #2】T2 子序列问题
    简单NLT
    python中的位运算
    列表和元组
  • 原文地址:https://www.cnblogs.com/Apologize/p/4998070.html
Copyright © 2011-2022 走看看