import UIKit import Alamofire import KVNProgress class EditProfileVC: UIVIEwController,UIImagePickerControllerDelegate,UINavigationControllerDelegate { @IBOutlet var datePickerVIEw: UIVIEw! @IBOutlet var datePicker: UIDatePicker! @IBOutlet var birthdayText: UnderlineTextFIEld! @IBOutlet var bioText: UnderlineTextFIEld! @IBOutlet var scrollVIEw: UIScrollVIEw! var imagePicker = UIImagePickerController() var photoFlag = -1 let activityVIEw = UIActivityIndicatorVIEw(activityIndicatorStyle: .whiteLarge) var singletonInstance = Singleton.sharedDataContainer var email = "" var token = "" overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.birthdayText.text = "" if #available(iOS 11.0,*) { navigationController?.navigationbar.prefersLargeTitles = false } else { // Fallback on earlIEr versions } SwiftyPListManager.shared.getValue(for: "access_token",fromPListWithname: "AccountDetails") { (result,err) in if err == nil { self.token = (result as? String)! } } activityVIEw.color = UIcolor.blue activityVIEw.center = self.vIEw.center self.vIEw.addSubvIEw(activityVIEw) self.datePickerVIEw.isHIDden = true self.genderTxt.isUserInteractionEnabled = false self.birthdayText.isUserInteractionEnabled = false imagePicker.delegate = self datePicker.addTarget(self,action: #selector(datePickerChanged),for: .valueChanged)self.getProfileDetails() } @objc func savepressed() { self.activityVIEw.isHIDden = false self.activityVIEw.startAnimating() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "MMMM dd,YYYY" let date = dateFormatter.date(from: self.birthdayText.text!) dateFormatter.dateFormat = "dd-MM-yyyy" let dob = dateFormatter.string(from: date!) let appDelegate = UIApplication.shared.delegate as! AppDelegate let urlString = appDelegate.serverUrl + "edit_profile?full_name=\(self.fullnameText.text!)&dob=\(dob)&gender=\(self.genderTxt.text!)&bio_data=\(self.bioText.text!)&location=\(self.locationText.text!)&web_site=\(self.webTextFIEld.text!)&token=\(self.token)" } @objc func datePickerChanged(sender: UIDatePicker) { let formatter = DateFormatter() formatter.dateFormat = "MMMM dd,YYYY" birthdayText.text = formatter.string(from: sender.date) } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() } func getProfileDetails() { self.activityVIEw.isHIDden = false self.activityVIEw.startAnimating() let appDelegate = UIApplication.shared.delegate as! AppDelegate let urlString = appDelegate.serverUrl + "vIEw_profile?token=\(self.token)" } } } @IBAction func birthdayTapped(_ sender: Any) { self.datePickerVIEw.isHIDden = false } }
上面的代码是我的整个vIEwcontroller类代码,任何人都可以请你帮我找出解决方案.我将birthdayText的值赋值为nil I VIEwController但没有用.
解决方法 默认情况下,UITextFIEld的text属性为空.所以下面的代码按预期工作.将它与您的代码进行比较:class VIEwController: UIVIEwController { private let textFIEld: UITextFIEld = { let tf = UITextFIEld() tf.borderStyle = .roundedRect tf.placeholder = "Choose date and time" tf.text = "" // not even necessary return tf }() lazy private var datePicker: UIDatePicker = { let dp = UIDatePicker() dp.addTarget(self,action: #selector(datePickerValueChanged),for: .valueChanged) return dp }() lazy private var dateFormatter: DateFormatter = { let df = DateFormatter() df.dateStyle = .short df.timeStyle = .short return df }() @objc private func datePickerValueChanged(datePicker: UIDatePicker) { textFIEld.text = dateFormatter.string(from: datePicker.date) } overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() let stackVIEw = UIStackVIEw(arrangedSubvIEws: [textFIEld,datePicker]) stackVIEw.axis = .vertical vIEw.addSubvIEw(stackVIEw) stackVIEw.translatesautoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ stackVIEw.topAnchor.constraintEqualToSystemSpacingBelow(vIEw.safeAreaLayoutGuIDe.topAnchor,multiplIEr: 1),stackVIEw.leadingAnchor.constraintEqualToSystemSpacingAfter(vIEw.safeAreaLayoutGuIDe.leadingAnchor,vIEw.safeAreaLayoutGuIDe.trailingAnchor.constraintEqualToSystemSpacingAfter(stackVIEw.trailingAnchor,multiplIEr: 1) ]) }}
结果是:
更新:
您的问题似乎是在vIEwDIDLoad的末尾调用self.getProfileDetails().在该方法中,您可以使用self.birthdayText.text = dateFormatter.string(from:date!)来设置文本.
总结以上是内存溢出为你收集整理的UIDatePicker,默认值为nil – iOS全部内容,希望文章能够帮你解决UIDatePicker,默认值为nil – iOS所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)