UIDatePicker with default nil value – iOS
我搜索了很多,但没有找到解决方案。谁能帮我找出如何将 UIDatePicker 初始值设置为空文本字段??
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
import UIKit
import Alamofire import KVNProgress class EditProfileVC: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate
@IBOutlet var birthdayText: UnderLineTextField! @IBOutlet var scrollView: UIScrollView! var photoFlag = -1 let activityView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) var singleTonInstance = SingleTon.sharedDataContainer var email =”” override func viewDidLoad() self.birthdayText.text =”” SwiftyPlistManager.shared.getValue(for:”access_token”, fromPlistWithName:”AccountDetails”) { (result, err) in if err == nil activityView.color = UIColor.blue self.view.addSubview(activityView) self.datePickerView.isHidden = true self.genderTxt.isUserInteractionEnabled = false imagePicker.delegate = self datePicker.addTarget(self, action: #selector(datePickerChanged), for: .valueChanged) self.getProfileDetails() } @objc func savePressed() let dateFormatter = DateFormatter() 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 appDelegate = UIApplication.shared.delegate as! AppDelegate let urlString = appDelegate.serverUrl +”view_profile?token=\\(self.token)” } @IBAction func birthdayTapped(_ sender: Any) |
上面的代码是我的整个viewcontroller类代码任何人都可以请你帮我找出解决方案。我将birthdayText的值分配为nil I ViewController但没有用。
- 有没有理由不能有默认日期?使用当前日期或固定日期(例如 2000 年 1 月 1 日)非常常见且易于理解。
- 你为什么要这样做? Picker 是一个易于处理(对用户而言)、快速”滚动”和有限可能性的 UI 组件。那为什么要使用 UITextField 呢?或者那是你选择的日期?然后使用标签来禁用修改?
- 不,当 vieweDidLoad 我应该有一个空的文本字段。并且它应该仅在从日期选择器中选择一个日期后才显示日期。
- 你能解释一下”UIDatePicker 初始值作为空文本字段吗??”它必须是其他方式吗?
- 否,文本字段仅在从日期选择器中选择日期后才应显示日期。
- 这是解决方案:stackoverflow.com/questions/50873279/…
- 然后仅在用户选择某些内容后才更新选择器值
- @MahendraGP 我必须将其设置为 nil 值而不是当前日期:(
- 所以默认情况下文本字段必须为空,并在用户通过选择器选择日期后立即填充?
- 我还在 viewDidLoad 中将文本字段的值分配为 ” ” 但没有用。
- 你能展示你的整个视图控制器的代码吗?
- 我更新我的代码任何人都可以请你帮助我。
UITextField 的 text 属性默认为空。所以下面的代码按预期工作。将其与您的代码进行比较:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
class ViewController: UIViewController {
private let textField: UITextField = { lazy private var datePicker: UIDatePicker = { lazy private var dateFormatter: DateFormatter = { @objc private func datePickerValueChanged(datePicker: UIDatePicker) { override func viewDidLoad() { let stackView = UIStackView(arrangedSubviews: [textField, datePicker]) view.addSubview(stackView) } |
结果:
更新:
您的问题似乎是您在 viewDidLoad 的末尾调用了 self.getProfileDetails()。在该方法中,您有设置文本的行 self.birthdayText.text = dateFormatter.string(from: date!)。
- 这意味着什么?
- 谢谢我也发现了我的错误。实际上这不是我的项目,我的角色只是为了调试。所以对代码只有一点困惑。再次感谢
我没有在我的 xcode 中尝试这个尝试这个
1
2 3 4 5 6 |
@objc func datePickerChanged(sender: UIDatePicker)
{ let formatter = DateFormatter() formatter.dateFormat =”MMMM dd, YYYY” birthdayText.text =”” } |
- 但在选择值后,文本字段应该具有日期选择器的值。
- 什么是生日文本?是文本视图吗?从pickerview获取选定的日期,当你设置为文本字段时,像这样发送”
- 生日文本是一个文本字段。
来源:https://www.codenong.com/51205450/