第二个viewDidLoad

时间:2016-08-31 08:54:57

标签: ios swift uitextfield 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)

任何想法可能出错?

2 个答案:

答案 0 :(得分:0)

viewDidLoad 是您必须做任何事情的范围。

每次出现视图时都会调用

viewWillAppear

尝试将其置于viewWillAppear如果即使这样也无法解决您的问题,请尝试使用 dispatch_async 异步调用您的代码

答案 1 :(得分:0)

奇怪。正在使用代码,发现设置UIDatePickers locale导致UIDatePicker无法正确显示。

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

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