首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DatePicker传递数据

DatePicker传递数据
EN

Stack Overflow用户
提问于 2021-11-10 14:08:55
回答 1查看 46关注 0票数 0

我有一个成功的日期选择器,在下面的页面上有一个stepper/number选择器,允许用户选择日期和项目数量。在新的视图中,我想显示所有以前的信息,供他们查看。我有一些适当的方法,但它们似乎不起作用。我猜这是因为它们不是textFields,并且需要一些额外的代码来请求UIdatepicker和Stepper传递信息。请看下面:)

这是我的日期选择器视图控制器

代码语言:javascript
复制
import UIKit

class StoreDatesViewController: UIViewController {

  
    @IBOutlet weak var nextButton: UIButton!
    
    @IBOutlet weak var dropOff: UITextField!
    
    @IBOutlet weak var pickUp: UITextField!
    
    
    
    
    let datePicker = UIDatePicker()

     override func viewDidLoad() {
       super.viewDidLoad()
        showDatePicker()
         
         
     }
    
    override func viewWillAppear(_ animated: Bool) {
        nextButton.isEnabled = true
    }
    


     func showDatePicker(){
       //Format Date
       datePicker.datePickerMode = .date
         datePicker.preferredDatePickerStyle = .inline
         datePicker.backgroundColor = UIColor(named: "yellow-2")
         
         

      //ToolBar
         
   
         
      let toolbar = UIToolbar();
      toolbar.sizeToFit()
         
         let toolbar2 = UIToolbar();
             toolbar2.sizeToFit()
         
      let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker));
         
         
         
     let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker));
         
         let doneButton2 = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker2));
            
        let cancelButton2 = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker2));

         toolbar.setItems([doneButton,cancelButton], animated: false)
         toolbar.tintColor = .white
         toolbar.backgroundColor = .red
         
    
         toolbar2.setItems([doneButton2,cancelButton2], animated: false)
         toolbar2.tintColor = .white
         
         dropOff.inputAccessoryView = toolbar
         dropOff.inputView = datePicker
         
         pickUp.inputAccessoryView = toolbar2
         pickUp.inputView = datePicker
         
        
}

     @objc func donedatePicker(){

      let formatter = DateFormatter()
      formatter.dateFormat = "dd/MM/yyyy"
         dropOff.text = formatter.string(from: datePicker.date)
      self.view.endEditing(true)
    }
    
    @objc func donedatePicker2(){

     let formatter = DateFormatter()
     formatter.dateFormat = "dd/MM/yyyy"
        pickUp.text = formatter.string(from: datePicker.date)
     self.view.endEditing(true)
   }

    @objc func cancelDatePicker(){
       self.view.endEditing(true)
     }
    
    @objc func cancelDatePicker2(){
       self.view.endEditing(true)
     }
    
    @IBAction func didTapNext() {
        let dropOff = dropOff.text
        let pickUp = pickUp.text
        let storeDetailsVC = self.storyboard?.instantiateViewController(withIdentifier: "storeDetailsVC") as! storeDetailsViewController
        storeDetailsVC.dropOff = dropOff!
        storeDetailsVC.pickUp = pickUp!
    }
    
   }

这是我的数字选择视图控制器

代码语言:javascript
复制
import UIKit

class StoreQuantityViewController: UIViewController{
   
   

   @IBOutlet weak var numbers: UILabel!
   
   override func viewDidLoad() {
       super.viewDidLoad()

   }
   

   @IBAction func stepper(_ sender: UIStepper) {
       numbers.text = String(Int(sender.value))
           
       }
   
   @IBAction func next(_ sender: Any) {
       let data2 = numbers.text
       let storeDetailsVC = self.storyboard?.instantiateViewController(withIdentifier: "storeDetailsVC") as! storeDetailsViewController
       storeDetailsVC.data2 = data2!
       self.navigationController?.pushViewController(storeDetailsVC, animated: true)
       
   }
}
    ```
EN

回答 1

Stack Overflow用户

发布于 2021-11-12 07:10:06

您需要将信息从文本字段传递到下一个视图中的字符串。

解决方案1:

代码语言:javascript
复制
 override func viewDidLoad() {
   super.viewDidLoad()
    pickUp.text = currentDate // This you can create using the date formatter
    dropOff.text = defaultDate // This is default date value you can set if needed
    showDatePicker()        
 }

解决方案2:

代码语言:javascript
复制
 @IBAction func didTapNext() {
      //Apply validation here to check if its empty if no default value provided.
     if dropOff.text.isEmpty { 
        //Show alert to user to select drof off date.
        return
     }

     if pickUp.text.isEmpty { 
        //Show alert to user to select PickUp date.
        return
     }
     
     let dropOff = dropOff.text
     let pickUp = pickUp.text
     let storeDetailsVC = self.storyboard?.instantiateViewController(withIdentifier: "storeDetailsVC") as! storeDetailsViewController
     storeDetailsVC.dropOff = dropOff!
     storeDetailsVC.pickUp = pickUp!
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69914757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档