Ios UIDatePicker在第二个viewDidLoad上更改背景色

Ios UIDatePicker在第二个viewDidLoad上更改背景色,ios,swift,uitextfield,uidatepicker,Ios,Swift,Uitextfield,Uidatepicker,正如标题所提到的,我在使用UIDatePicker组件时遇到了问题。 我正在更改它的背景色,这在第一次打开ViewController时不起作用。如果我关闭它,然后再次返回到该ViewController,代码将正常工作。以下是我的代码片段: var datePickerView:UIDatePicker! // in viewDidLoad datePickerView = UIDatePicker() datePickerView.datePickerMode = UIDatePicker

正如标题所提到的,我在使用UIDatePicker组件时遇到了问题。 我正在更改它的背景色,这在第一次打开ViewController时不起作用。如果我关闭它,然后再次返回到该ViewController,代码将正常工作。以下是我的代码片段:

var datePickerView:UIDatePicker!

// in viewDidLoad
datePickerView = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.DateAndTime
datePickerView.tintColor = UIColor.orangeColor()
datePickerView.backgroundColor = UIColor.blackColor()
dateTextField.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(ViewController.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)

有什么想法吗?

viewDidLoad是你必须做一次任何事情的范围

视图将出现每次显示视图时都会被调用


尝试将其放置在
视图将出现
如果即使这样也无法解决您的问题,请尝试使用dispatch\u async异步调用您的代码。玩了一会儿代码,发现设置UIDatePicker
locale
导致UIDatePicker显示不正确

datePickerView.locale = NSLocale(localeIdentifier: "en")

还是不知道为什么。如果您有任何建议,请随时在下面发表评论,同时我会找到解决此问题的方法。

您所说的
关闭它,然后再次返回该ViewController是什么意思?关闭应用程序?@Dravidian它的功能是关闭ViewController。好的。只需在主线程中添加选择器代码,如dispatch_async(dispathch_get_mainQueue…{}@Gagan_iOS,尝试过,但没有帮助。在视图中添加pickerview的地方?同样的问题,您的修复程序没有帮助:(@ArtemZ.you尝试删除设置区域设置的行吗?这解决了我的问题。我不设置区域设置:(