Как назначить строку с результатом из UIPickerView, использовать строку в качестве URL-адреса WebView
Я пытаюсь создать приложение для iOS, которое позволяет пользователю выбирать штат (США) из UIPickerView, у которого есть строка (URL-адрес веб-сайта), назначенная каждому значению в UIPickerView, а под UIPickerView находится кнопка, которая запускает веб Вид (я знаю, что он устарел), который находится под кнопкой отправки. Похоже на это. Вместо того, чтобы запускать Google в веб-представлении, я хочу запустить веб-сайт, используя URL-адрес, данный State в UIPickerView, который выбирается при нажатии кнопки отправки. Код для моего WebController.swift приведен ниже. Это изображение показывает вывод на iPhone (8). Кто-нибудь знает какие-либо хорошие ссылки для чтения по этому сценарию? Любые идеи тоже были бы потрясающими!
import UIKit
class WebController: UIViewController, UIPickerViewDelegate,
UIPickerViewDataSource {
@IBOutlet weak var itemLabel: UILabel!
@IBOutlet weak var urlLabel: UILabel!
@IBOutlet weak var webView: UIWebView!
var states = [
["title": "Alabama","link": "https://www.dmv.org/al-alabama/"],
["title": "Alaska", "link": ""],
["title": "Arizona", "link": ""],
["title": "Arkansas", "link": ""],
["title": "California", "link": ""],
["title": "Colorado", "link": ""],
["title": "Connecticut", "link": ""],
["title": "Deleware", "link": ""],
["title": "Florida", "link": ""],
["title": "Georgia", "link": ""],
["title": "Hawaii", "link": ""],
["title": "Idaho", "link": ""],
["title": "Illinois", "link": ""],
["title": "Indiana", "link": ""],
["title": "Iowa", "link": ""],
["title": "Kansas","link": ""],
["title": "Kentucky", "link": ""],
["title": "Louisiana", "link": ""],
["title": "Maine", "link": ""],
["title": "Maryland", "link": ""],
["title": "Massachusetts", "link": ""],
["title": "Michigan", "link": ""],
["title": "Minnesota", "link": ""],
["title": "Mississippi", "link": ""],
["title": "Missouri", "link": ""],
["title": "Montana", "link": ""],
["title": "Nebraska", "link": ""],
["title": "Nevada", "link": ""],
["title": "New Hampshire", "link": ""],
["title": "New Jersey", "link": ""],
["title": "New Mexico", "link": ""],
["title": "New York", "link": ""],
["title": "North Carolina", "link": ""],
["title": "North Dakota", "link": ""],
["title": "Ohio", "link": ""],
["title": "Oklahoma", "link": ""],
["title": "Oregon", "link": ""],
["title": "Pennsylvania", "link": ""],
["title": "Rhode Island", "link": ""],
["title": "South Carolina", "link": ""],
["title": "South Dakota", "link": ""],
["title": "Tennessee", "link": ""],
["title": "Texas", "link": ""],
["title": "Utah", "link": ""],
["title": "Vermont", "link": ""],
["title": "Virginia", "link": ""],
["title": "Washington", "link": ""],
["title": "West Virginia", "link": ""],
["title": "Wisconsin", "link": ""],
["title": "Wyoming", "link": ""]
]//end states[] array
override func viewDidLoad() {
super.viewDidLoad()
itemLabel.text = states[0]["title"]
urlLabel.text = states[0]["link"]
}//end viewDidLoad()
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}//end didReceiveMemoryWarning()
//How many parts to the wheel do you need?
func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}//end numberOfComponents
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return states.count
}//end numberOfRowsInComponent
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?{
return states[row]["title"]
}//end titleForRow
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
var itemSelected = states[row]["title"]
var urlSelected = states[row]["link"]
itemLabel.text = itemSelected
urlLabel.text = urlSelected
}//end didSelectRow
@IBAction func submitStateBtn(_ sender: UIButton) {
let url = URL(string: "http://www.google.com")//this line needs to change
let requestObj = URLRequest(url: url!)
webView.loadRequest(requestObj)
}//end submitStateBtn
}//end WebController() class
1 ответ
Вы получите это (объявите var UIPickerView глобально):
var row = 0;
let pickerView :UIPickerView = UIPickerView()
row = pickerView.selectedRow(inComponent: 0)
var urlSelected = states[row]["link"]