2015-09-26 4 views
-1

У меня тусклый UITextField на моей раскадровке, как я могу вернуть номер в мое удовольствие. моя забава:UITextField return Number to function

func translet(number:Double,from:String,to:String) -> Double 

Полный код:

import UIKit 

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { 

    @IBOutlet weak var unitTypePicker: UIPickerView! 
    @IBOutlet weak var unitFromPicker: UIPickerView! 
    @IBOutlet weak var unitToPicker: UIPickerView! 

    @IBOutlet weak var unitTypeLabel: UILabel! 
    @IBOutlet weak var unitFromLabel: UILabel! 
    @IBOutlet weak var unitToLabel: UILabel! 
    @IBOutlet weak var TrabsletCacl: UILabel! 
    @IBOutlet weak var textinput: UITextField! 


    @IBAction func unitTypeBTN(sender: AnyObject) { 
     unitTypePicker.hidden = false 
     unitFromPicker.hidden = true 
     unitToPicker.hidden = true 
     unitTypePicker.reloadAllComponents() 
     unitFromLabel.text = "" 
     unitToLabel.text = "" 
    } 
    @IBAction func unitFromBTN(sender: AnyObject) { 
     unitTypePicker.hidden = true 
     unitFromPicker.hidden = false 
     unitToPicker.hidden = true 
     unitFromPicker.reloadAllComponents() 
    } 
    @IBAction func unitToBTN(sender: AnyObject) { 
     unitTypePicker.hidden = true 
     unitFromPicker.hidden = true 
     unitToPicker.hidden = false 
     unitToPicker.reloadAllComponents() 
    } 



    // First Array for Unit Type 
    let UnitDataArray = ["Unit for Weight","Unit for Length","Unit for Area","Unit for Volume","Unit for Quantity"] 
    // Sec Array for Unit Type from or to 
    let UnitforLengthData = ["m","km","cm","mm","yd","ft","in"] 
    let UnitforWeightData = ["g","kg","m.t","l.t","sh.t","lb"] 
    let UnitforArea = ["sq.m","sq.ft","sq.yd","sq.in"] 
    let UnitforVolume = ["L","ml","gal","bu","cu.m","cu.in","cu.in."] 
    let UnitforQuantity = ["pcs","pkg","pair","set","dozen","gross","ream","roll","unit","carton","bale","barrel","bag"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 


     //textinput.delegate = self 
     //self.view.addSubview(textinput) 

     unitTypeLabel.text = "Unit for Weight" 
     unitTypeLabel.font = UIFont(name: "HelveticaNeue-Thin", size: 30) 
     unitFromLabel.font = UIFont(name: "HelveticaNeue-Thin", size: 17) 
     unitToLabel.font = UIFont(name: "HelveticaNeue-Thin", size: 17) 
     //unitType delegate and datasource 
     unitTypePicker.delegate = self 
     unitTypePicker.dataSource = self 
     //unitFrom delegate and datasource 
     unitFromPicker.delegate = self 
     unitFromPicker.dataSource = self 
     //unitTo delegate and datasource 
     unitToPicker.delegate = self 
     unitToPicker.dataSource = self 

     // pickerView hidden 
     unitFromPicker.hidden = true 
     unitToPicker.hidden = true 
     unitTypePicker.hidden = true 

     // Do any additional setup after loading the view, typically from a nib. 
    } 

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

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     if pickerView == unitTypePicker { 
      return UnitDataArray.count 
     }else if pickerView == unitFromPicker { 
      if unitTypeLabel.text == "Unit for Weight" { 
       return UnitforWeightData.count 

      }else if unitTypeLabel.text == "Unit for Length" { 
       return UnitforLengthData.count 
      }else if unitTypeLabel.text == "Unit for Area" { 
       return UnitforArea.count 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       return UnitforVolume.count 
      }else{ 
       return UnitforQuantity.count 
      } 
     }else{ 
      if unitTypeLabel.text == "Unit for Weight" { 
       return UnitforWeightData.count 

      }else if unitTypeLabel.text == "Unit for Length" { 
       return UnitforLengthData.count 
      }else if unitTypeLabel.text == "Unit for Area" { 
       return UnitforArea.count 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       return UnitforVolume.count 
      }else{ 
       return UnitforQuantity.count 
      } 

     } 
    } 
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     if pickerView == unitTypePicker { 
      return UnitDataArray[row] 
     }else if pickerView == unitFromPicker { 
      if unitTypeLabel.text == "Unit for Weight" { 
       return UnitforWeightData[row] 
      }else if unitTypeLabel.text == "Unit for Length" { 
       return UnitforLengthData[row] 
      }else if unitTypeLabel.text == "Unit for Area" { 
       return UnitforArea[row] 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       return UnitforVolume[row] 
      }else{ 
       return UnitforQuantity[row] 
      } 

     }else{ 
      if unitTypeLabel.text == "Unit for Weight" { 
       return UnitforWeightData[row] 
      }else if unitTypeLabel.text == "Unit for Length" { 
       return UnitforLengthData[row] 
      }else if unitTypeLabel.text == "Unit for Area" { 
       return UnitforArea[row] 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       return UnitforVolume[row] 
      }else{ 
       return UnitforQuantity[row] 
      } 

     } 

    } 
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     if pickerView == unitTypePicker{ 
      unitTypeLabel.text = UnitDataArray[row] 
     }else if pickerView == unitFromPicker { 
      if unitTypeLabel.text == "Unit for Weight"{ 
       unitFromLabel.text = UnitforWeightData[row] 
      }else if unitTypeLabel.text == "Unit for Length" { 
       unitFromLabel.text = UnitforLengthData[row] 
      }else if unitTypeLabel.text == "Unit for Area" { 
       unitFromLabel.text = UnitforArea[row] 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       unitFromLabel.text = UnitforVolume[row] 
      }else{ 
       unitFromLabel.text = UnitforQuantity[row] 
      } 
     }else{ 
      if unitTypeLabel.text == "Unit for Weight"{ 
       unitToLabel.text = UnitforWeightData[row] 
      }else if unitTypeLabel.text == "Unit for Length" { 
       unitToLabel.text = UnitforLengthData[row] 
      }else if unitTypeLabel.text == "Unit for Area" { 
       unitToLabel.text = UnitforArea[row] 
      }else if unitTypeLabel.text == "Unit for Volume" { 
       unitToLabel.text = UnitforVolume[row] 
      }else{ 
       unitToLabel.text = UnitforQuantity[row] 
      } 
     } 
    } 

    func translet(number:Double,from:String,to:String) -> Double { 
     switch from{ 
     case "g": 
      return number 
     case "kg": 
      return number * 1000 
     default: 
      return number 
     } 
    } 

} 

ответ

0

Я действительно не понимаю, что вы просите (и почему ваш FUNC имеет два строковых параметра при использовании только одного из них

Возможно, вы хотите что-то вроде:

translet(number:textinput.text.toInt(),from:"kg",to:"g") 
+0

Извините, мне нужно, чтобы две строки попали из единицы. Label и unitTo Label string, номер для получения номера UItextfield, вы смотрите на мой код, используя один, потому что не записываете завершенные. –

+0

Я все еще не понимаю, что бы вы хотели сделать с UITextField, но я редактировал свой комментарий. Возможно, вы хотите получить значение number из textinput.text? – Vlk

+0

Да, я хочу получить это, спасибо –