@Hirako797

Как передать значение переменной из UIPickerView в ViewController?

Создал UIPickerView в отдельном файле .swift
import UIKit
@IBDesignable class BorderedView : UIView{
    /// Толщина границы
    @IBInspectable var borderWidth: CGFloat {
        set { layer.borderWidth = newValue }
        get { return layer.borderWidth }
    }
    /// Цвет границы
    @IBInspectable var borderColor: UIColor? {
        didSet { layer.borderColor = borderColor?.cgColor }
    }
    /// Радиус границы
    @IBInspectable var cornerRadius: CGFloat {
        set { layer.cornerRadius = newValue }
        get { return layer.cornerRadius  }
    }
}
class SelectAngleViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    
    @IBOutlet weak var anglePicker: UIPickerView!
    @IBOutlet weak var saveAngleButton: UIButton!
    
    var array1 = ["90°", "60°", "45°", "30°", "15°"]
    var label = "5"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        anglePicker.delegate = self
        anglePicker.dataSource = self
        view.backgroundColor = UIColor.clear
        view.isOpaque = false
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?{
        return array1[row]
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
        return array1.count
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            label = array1[row]
    }
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    @IBAction func saveAngleButton(_ sender: UIButton) {
        dismiss(animated: true)
        let actualRow = self.anglePicker.selectedRow(inComponent: 0)
        label = array1[actualRow]
    } 
}


Далее необходимо выбранное в PickerView использовать в ViewController:
func sRoundTap (dTF: String, qTF: String) -> Double{
        var d: Double = 0
        var angle = ""
        var q : Double = 0
        
        if let dTF = dRoundTapTF.text {
            d = Double(dTF.replacingOccurrences(of: ",", with: ".")) ?? 0
        }
        if let qTF = qRoundTapTF.text {
            q = Double(qTF.replacingOccurrences(of: ",", with: ".")) ?? 0
        }
        let s = CalcAreaFitting.shared.areaTapRound(angle: angle, d: d, q: q)
        return s
    }
    @IBAction func dRoundTapTF(_ sender: UITextField) {
        let s = sRoundTap(dTF: dRoundTapTF.text ?? "0", qTF: qRoundTapTF.text ?? "0")
        sRoundTapLabel.text = "ХХХХХХХХХХ " + "\(s)" + " Х"
    }
    @IBAction func qRoundTapTF(_ sender: UITextField) {
        let s = sRoundTap(dTF: dRoundTapTF.text ?? "0", qTF: qRoundTapTF.text ?? "0")
        sRoundTapLabel.text = "ХХХХХХХХХХ: " + "\(s)" + " Х"
    }

Но, к сожалению, переменная видна только в приделах функции @IBAction func saveAngleButton(_ sender: UIButton)
Подскажите, пожалуйста: Как вынести переменную за пределы данной функции? Как ее передать в ViewController.swift?
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
FunCorp Москва
от 180 000 до 250 000 руб.
Blogman Оренбург
от 20 000 руб.
ИНЛАБ Воронеж
от 80 000 до 100 000 руб.
22 марта 2019, в 15:07
2000 руб./за проект
22 марта 2019, в 15:02
200 руб./за проект
22 марта 2019, в 14:52
20000 руб./за проект