Ios 导航项';无法设置色调颜色 我的情况:

Ios 导航项';无法设置色调颜色 我的情况:,ios,swift,uinavigationitem,Ios,Swift,Uinavigationitem,有一个视图a(UICollectionViewController&UICollectionViewCell)和视图B(UIViewController)。当我用情节提要中的Segue触摸视图A中的一个单元格时,我想切换到视图B 在情节提要中,我将视图A和视图B与推送序列连接,该序列的标识符是序列视图 SwitchView的功能运行得很好 我的问题是: 使用Push Segue,我不需要添加BackButton(NavigationItem)来返回视图,因为系统会自动装箱一个“Navigat

有一个视图a(
UICollectionViewController
&
UICollectionViewCell
)和视图B(
UIViewController
)。当我用
情节提要中的
Segue
触摸视图A中的一个单元格时,我想切换到视图B

  • 情节提要
    中,我将视图A和视图B与
    推送序列
    连接,该序列的标识符是
    序列视图

  • SwitchView的功能运行得很好

  • 我的问题是:
    • 使用
      Push Segue
      ,我不需要添加BackButton(
      NavigationItem
      )来返回视图,因为系统会自动装箱一个“NavigationItem”。我尝试了其他类型的segue,比如
      Modal
      Popover
      ,但是
      导航项并不是自动创建的。我想问为什么

    • 我想为系统自动创建的
      NavigationItem
      设置特定的颜色,而不是默认的蓝色,但我找不到它。之后,我只是在
      prepareforsgue()
      中设置颜色,但它不起作用。请告诉我如何设置它的特定颜色

    我的代码: 谢谢你的帮助


    Ethan Joe

    要为该导航栏设置
    tintColor

    myOtherCardViewController.navigationBar.tintColor = .whiteColor()
    
    为什么使用Modal或PopOver时没有导航栏?因为这就是Modal和Popover的工作原理!您必须为要连接到Modal segue的视图创建另一个导航控制器,如下所示:

    我正在使用的另一种技术是,创建单个NavigationController类,设置所有所需的属性(颜色、字体等),然后将故事板中的所有NavigationController链接到该NavigationController类


    这样,您就不必重新配置每个导航控制器。

    要为该导航栏设置
    tintColor

    myOtherCardViewController.navigationBar.tintColor = .whiteColor()
    
    为什么使用Modal或PopOver时没有导航栏?因为这就是Modal和Popover的工作原理!您必须为要连接到Modal segue的视图创建另一个导航控制器,如下所示:

    我正在使用的另一种技术是,创建单个NavigationController类,设置所有所需的属性(颜色、字体等),然后将故事板中的所有NavigationController链接到该NavigationController类


    这样,您就不必重新配置每个NavigationController。

    您的解决方案

    • 您可以在
      viewDidLoad
      方法中设置隐藏在View_B控制器中的后退按钮,如下所示

      class View_BViewController: UIViewController {
      
          override func viewDidLoad() {
             super.viewDidLoad()
              self.navigationItem.hidesBackButton = true;
              // Do any additional setup after loading the view.
          } 
      } 
      
    • 要设置着色颜色,您必须创建
      UINavigationController
      的子类,并在
      UIStoryboard

    您的子类将如下所示,以设置着色颜色

    class navigationController: UINavigationController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            //self.navigationBar.barStyle = UIBarStyle.Default
            self.navigationBar.tintColor = UIColor.redColor()
            // Do any additional setup after loading the view.
        }
    
        //Other stuff
    }
    

    愿这对你有帮助

    您的解决方案

    • 您可以在
      viewDidLoad
      方法中设置隐藏在View_B控制器中的后退按钮,如下所示

      class View_BViewController: UIViewController {
      
          override func viewDidLoad() {
             super.viewDidLoad()
              self.navigationItem.hidesBackButton = true;
              // Do any additional setup after loading the view.
          } 
      } 
      
    • 要设置着色颜色,您必须创建
      UINavigationController
      的子类,并在
      UIStoryboard

    您的子类将如下所示,以设置着色颜色

    class navigationController: UINavigationController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            //self.navigationBar.barStyle = UIBarStyle.Default
            self.navigationBar.tintColor = UIColor.redColor()
            // Do any additional setup after loading the view.
        }
    
        //Other stuff
    }
    

    愿这对你有帮助

    步骤1:如果必须发生某些事情,请停止使用
    。可能
    backbarbuttoneim
    leftbarbuttoneim
    为零?步骤1:如果必须发生某些事情,请停止使用
    。也许
    backbarbuttoneim
    leftbarbuttoneim
    是零?谢谢你的回答。你的回答很清楚,很有用。谢谢你的回答。你的答案很清楚也很有用。谢谢你的回答。我用了另一种方法来解决它。但还是要谢谢你的回答。谢谢你的回答。我用了另一种方法来解决它。但还是要谢谢你的回答。