当我回到主UIViewController
时,为什么navigationBar标题的颜色不会变为白色?这是简单的代码(viewWillAppear
,viewWillDisappear
),但它不起作用,当我回到这个VC时标题保持绿色。应用程序中的主要颜色也是绿色:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIApplication.shared.statusBarStyle = .lightContent
DispatchQueue.main.async {
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name: "Gotham-Medium", size: 20)!]
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = .default
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.green, NSAttributedStringKey.font: UIFont(name: "Gotham-Medium", size: 20)!]
}
答案 0 :(得分:1)
var authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", tenantId));
var credential = new ClientCredential(applicationId, password);
AuthenticationResult token = authContext.AcquireTokenAsync("https://management.core.windows.net/", credential).Result;
var credentials = new TokenCredentials(token.AccessToken);
从viewWillAppear。
中调用此方法答案 1 :(得分:1)
由于视图控制器之间共享导航栏的方式以及系统如何更新导航栏,因此无法实现此目的。
然而,您可以做的是将UILabel放在导航栏的标题中,使用您想要的字体和颜色。此方法的优点是UILabel仅适用于该特定视图控制器,因此您永远不需要重置它。
因此在推送(第二个)视图控制器的viewDidLoad中输入以下代码:
{{1}}
(请注意,您可以将文本设置为您想要的任何内容,但self.navigationItem.title保持简单)
您现在可以从viewWillAppear和viewWillDisappear方法中删除与导航栏相关的代码。
答案 2 :(得分:0)
您要在视图中添加导航标题颜色代码,将显示上一个视图控制器。