当navigationController设置为false时,IOS导航栏tintColor不会变为白色
我的一个Xcode项目遇到了问题。我试图隐藏IOS应用程序的导航栏,但在时间、载体和电池部分/图标上保留白色色调。如果在当navigationController设置为false时,IOS导航栏tintColor不会变为白色,ios,iphone,uinavigationbar,tintcolor,Ios,Iphone,Uinavigationbar,Tintcolor,我的一个Xcode项目遇到了问题。我试图隐藏IOS应用程序的导航栏,但在时间、载体和电池部分/图标上保留白色色调。如果在self.navigationController?.navigationBarHidden=false中将navigationController设置为false,则只能将色调变为白色 设置为true时,色调变为白色,没有问题,但导航栏是彩色的。这是我的密码 import UIKit class ViewController: UIViewController, UIT
self.navigationController?.navigationBarHidden=false中将navigationController设置为false,则只能将色调变为白色
设置为true时,色调变为白色,没有问题,但导航栏是彩色的。这是我的密码
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var menuButton:UIBarButtonItem!
@IBOutlet weak var emailTxt: UITextField!
@IBOutlet weak var passwordTxt: UITextField!
@IBOutlet weak var signinBtn: UIButton!
@IBOutlet weak var signupBtn: UIButton!
var varView = Int()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
emailTxt.delegate = self
let theWidth = view.frame.size.width
let theHeight = view.frame.size.height
emailTxt.frame = CGRectMake(40, 200, theWidth-80, 30)
passwordTxt.frame = CGRectMake(40, 240, theWidth-80, 30)
signinBtn.frame = CGRectMake(theWidth-228, 340, 59, 30)
signupBtn.frame = CGRectMake(theWidth-228, 390, 59, 30)
let nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.Black
nav?.tintColor = UIColor.whiteColor()
nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController?.navigationBarHidden = true
//maparea
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true;
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
//emailTxt.resignFirstResponder()
self.view.endEditing(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func signInBtn(sender: AnyObject) {
PFUser.logInWithUsernameInBackground(emailTxt.text!, password: passwordTxt.text!) {
(user:PFUser?, error:NSError?) -> Void in
if error == nil {
print("logIn")
self.performSegueWithIdentifier("gotoMainVCFromSigninVC", sender: self)
} else {
print("error")
}
}
}
}
导入UIKit
类ViewController:UIViewController、UIExtFieldDelegate{
@IBVar menuButton:UIBarButtonItem!
@IBOutlet弱var emailTxt:UITextField!
@IBOutlet弱var密码txt:UITextField!
@IBOutlet弱var信号:UIButton!
@IBOUTLE弱var signupBtn:UIButton!
var varView=Int()
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
emailTxt.delegate=self
让宽度=view.frame.size.width
让高度=view.frame.size.height
emailTxt.frame=CGRectMake(40200,宽度-8030)
passwordTxt.frame=CGRectMake(40,240,宽度-80,30)
signinBtn.frame=CGRectMake(宽度-22834059,30)
signupBtn.frame=CGRectMake(宽度-2283905930)
设nav=self.navigationController?.navigationBar
导航?.barStyle=UIBarStyle.Black
nav?.tintColor=UIColor.whiteColor()
nav?.titleTextAttributes=[NSForegroundColorAttributeName:UIColor.whiteColor()]
self.navigationController?.navigationBarHidden=true
//地图区
}
func textField应返回(textField:UITextField)->Bool{
textField.resignFirstResponder()辞职
返回true;
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
//emailTxt.resignFirstResponder()
self.view.endEditing(true)
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
@iAction func signInBtn(发送方:任意对象){
PFUser.logInWithUsernameInBackground(emailTxt.text!,密码:passwordTxt.text!){
(用户:PFUser?,错误:NSError?->在中无效
如果错误==nil{
打印(“登录”)
self.performsguewithidentifier(“gotomainvcfromsignenvc”,发送方:self)
}否则{
打印(“错误”)
}
}
}
}
在视图控制器中,您可以像这样覆盖preferredStatusBarStyle
:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
您的问题不在于关联导航栏。它与状态栏有关。您的状态栏是lightContent
,因此您将看到白色。您只需将其更改为默认值
,您就会看得更清楚
使用viewcontroller
更改状态栏:
在中,将UIViewControllerBasedStatusBarAppearance设置为YES
.plist文件
在viewDidLoad中执行[self-setNeedsStatusBarAppearanceUpdate]
添加以下方法:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .Default
}
在您的情况下是导航,因此请执行以下操作:
self.navigationController.navigationBar.barStyle = .Default
希望有此帮助。对于@adrianokw的回答是针对一个viewcontroller,如果您想针对整个应用程序执行此操作,请将以下内容添加到info.plist
状态栏样式
UIStatusBarStyleLightContent
查看基于控制器的状态栏外观
否
更多信息如果您想要暗状态栏样式,请返回。默认值
而不是没有问题@LarryNavarro!如果我的答案是正确的,请把它标记为正确!谢谢