Создал 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?