簡體   English   中英

我只看到?-s 在同一視圖 controller 上的 Swift 中使用 2 個選擇器視圖時,如何解決這個問題?

[英]I see only ?-s when using 2 pickerviews in Swift on the same view controller, how to fix this?

幾個小時以來我一直試圖解決這個問題,現在我只剩下一個小問題了:

我在一個視圖 controller 上使用 2 個 UI 選擇器,當我嘗試 select 一個(也就是我點擊文本字段)時,我看到的只是問號,但如果我點擊其中一個,文本將出現在文本字段中. 我只是看不到我在選擇器中選擇了什么。

我已經嘗試過使用普通的選擇器視圖,我為每個選擇器使用了標簽,但似乎沒有任何效果。 我知道它應該如何工作,我看了很多教程,但仍然缺少一些東西。 你能幫我么? 謝謝!

這是代碼:

import UIKit

class SelectionViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    @IBOutlet weak var ageTextField: UITextField!
    @IBOutlet weak var weightTextField: UITextField!

    @IBOutlet weak var genderTextField: UITextField!
    @IBOutlet weak var lifeStyleTextField: UITextField!

    let picker1 = UIPickerView()
    let picker2 = UIPickerView()

    var genders = ["Male", "Female"]
    var lifeStyle = ["Sitting", "Normal", "Active"]

    override func viewDidLoad() {
        super.viewDidLoad()

        picker1.dataSource = self
        picker1.delegate = self

        picker2.dataSource = self
        picker2.delegate = self

        genderTextField.inputView = picker1
        lifeStyleTextField.inputView = picker2
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfComponentsInPickerView(pickerView : UIPickerView!) -> Int{
        return 2
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
        if pickerView == picker1 {
            return genders.count
        } else {
            return lifeStyle.count
        }
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

        if pickerView == picker1 {
            return genders[row]
        } else if pickerView == picker2{
            return lifeStyle[row]
        }
        else {
            print("No pickerview selected.")
        }
        return ("Pickeview not selected")
    }

        func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            if pickerView == picker1 {
                genderTextField.text = genders[row]
                self.view.endEditing(false)
            } else if pickerView == picker2{
                lifeStyleTextField.text = lifeStyle[row]
                self.view.endEditing(false)
            }
            else {
                print("Love love love I want your love")
            }
        }
}

這是我看到的:

在此處輸入圖像描述

你需要這個簽名(錯過_)

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

numberOfComponentsInPickerView應該返回 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM