Ios 如何更改DetailViewController中的后退按钮颜色?
我想更改DetailViewController中“后退”按钮的颜色。 我使用的是Swift 3和Xcode 8.3.3;但这是行不通的:Ios 如何更改DetailViewController中的后退按钮颜色?,ios,swift3,uinavigationcontroller,Ios,Swift3,Uinavigationcontroller,我想更改DetailViewController中“后退”按钮的颜色。 我使用的是Swift 3和Xcode 8.3.3;但这是行不通的: navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray 怎么做 我还尝试: navigationItem.leftBarButtonItem?.tintColor = UIColor.darkGray 但是没有用 实际上,我在调试器中验证了navigationItem.BackbarB
navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray
怎么做
我还尝试:
navigationItem.leftBarButtonItem?.tintColor = UIColor.darkGray
但是没有用
实际上,我在调试器中验证了navigationItem.BackbarButtonim为nil
以下是我上一次使用viewDidLoad进行试用的完整代码:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.tintColor = UIColor.darkGray
}
这里有一个简单的逐步重现我的问题的方法:
从Xcode 8.3.3:
- 创建一个新的Xcode项目
- 选择主细节应用程序。你不需要核心数据
- 创建项目
- 在DetailViewController.swift的viewDidLoad()函数中,添加以下行之一:
您将在尝试时看到DetailViewController的后退按钮保持蓝色 如果你看到一些不同的东西,那么我的Xcode肯定有点奇怪self.navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray self.navigationController?.navigationBar.tintColor = UIColor.darkGray
self.navigationController?.navigationBar.tintColor = UIColor.white
希望这对你有用
编辑:
创建项目后,您将在故事板中看到以下内容:
我把它改为:
这给了我以下输出:
下面是我在DetailViewController中为viewDidLoad()
编写的代码:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.tintColor = UIColor.red
// Do any additional setup after loading the view, typically from a nib.
configureView()
}
希望现在就足够清楚了。检查是否已将导航控制器正确嵌入到情节提要中,然后在ViewDiLoad of detailviewcontroller中写入以下代码:
self.navigationController?.navigationBar.tintColor = UIColor.brown
它工作正常请确保您已正确安装了嵌入式导航控制器。同时,为了安全起见,请确保您已提供了正确的控制器类 在控制器类中,只需添加此行-:
import UIKit
class First: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.tintColor = UIColor.darkGray
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
输出-:
您是否在您的
视图中更改它?您希望看到什么?是的,我在viewDidLoad中这样做。上载了一个测试项目,该项目正在更改条形图的颜色:我认为问题是由于您的.storyboard文件引起的。只需将您的.storyboard与测试项目1进行比较即可确保。我刚刚编辑了我的帖子,添加了一种逐步重现问题的方法。如果你有时间,请看一看。谢谢。它起作用了!一点:我必须将这一行:“let controller=(segue.destination as!UINavigationController).topViewController as!DetailViewController”更改为:“let controller=segue.destination as!DetailViewController”。我想知道苹果是否意识到了这一点。在iPhone上,你甚至可以去掉其中一个导航控制器(可能不在iPad上,我还没有试过)。你能解释一下“将导航控制器正确嵌入故事板”是什么意思吗。我到底需要检查什么?如果我看起来很正常。我的意思是说“转到情节串连板->选择要使初始viewcontroller->编辑器嵌入navigationcontroller的视图控制器,并使navigationcontroller成为初始viewcontroller。这就是我所做的。@Michel如果对你不起作用,请用更多细节编辑你的问题。我只是编辑了我的帖子以添加内容一种逐步重现问题的方法。如果有时间,请看一看。@Michel为什么不使用单视图应用程序?我创建了单视图应用程序,从未尝试过主细节应用程序。如果可能,请尝试单视图应用程序,它应该可以工作。如果你想测试我的错误,你必须和我一样尝试。按照我在文章末尾给出的步骤,只需不到一分钟。如果你有时间的话。除此之外,我的问题与单个视图应用程序无关。