dom*_*999 25 xcode uipickerview swift
我在一个View Controllers中有2个UIPickerController.我可以让一个工作,但当我添加一秒钟,我的应用程序崩溃.这是我用于一个选择器视图的代码:
import UIKit
class RegisterJobPosition: UIViewController, UIPickerViewDelegate {
@IBOutlet weak var positionLabel: UILabel!
var position = ["Lifeguard", "Instructor", "Supervisor"]
override func viewDidLoad() {
super.viewDidLoad()
}
func numberOfComponentsInPickerView(PickerView: UIPickerView!) -> Int
{
return 1
}
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
{
return position.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
{
return position[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
positionLabel.text = position[row]
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我怎样才能让第二个控制器工作?说我的第二个PickerView被调用UIPickerController(另一个被调用location).我尝试在PickerView方法中复制代码,position但它不起作用.
我正在使用Swift.
LAO*_*RTS 67
这是我的解决方案: - 在故事板上,将2 PickerView添加到您的视图中 - 将第一个选择器标记设置为属性检查器下第二个选择器的#1和#2 - CTRL +从每个选择器拖动到顶部黄色视图控制器图标并选择dataSource.重复相同的选择委托 - 重复上面的其他选择器 - 将pickerview和pickerviewdelegation添加到您的ViewController类:
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
Run Code Online (Sandbox Code Playgroud)
在ViewController类中,为拾取器创建空数组:
var picker1Options = []
var picker2Options = []
Run Code Online (Sandbox Code Playgroud)在viewDidLoad()方法中,使用您的内容填充数组:
picker1Options = ["Option 1","Option 2","Option 3","Option 4","Option 5"]
picker2Options = ["Item 1","Item 2","Item 3","Item 4","Item 5"]
Run Code Online (Sandbox Code Playgroud)实现delegate和pickerview方法:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 1 {
return picker1Options.count
} else {
return picker2Options.count
}
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
if pickerView.tag == 1 {
return "\(picker1Options[row])"
} else {
return "\(picker2Options[row])"
}
}
Run Code Online (Sandbox Code Playgroud)享受,享受乐趣,用积极的信号表达你的快乐.
小智 5
我发现这行得通。
class SecondViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var textbox1: UILabel!
@IBOutlet weak var textbox2: UILabel!
@IBOutlet weak var dropdown1: UIPickerView!
@IBOutlet weak var dropdown2: UIPickerView!
var age = ["10-20", "20-30", "30-40"]
var Gender = ["Male", "Female"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var countrows : Int = age.count
if pickerView == dropdown2 {
countrows = self.Gender.count
}
return countrows
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == dropdown1 {
let titleRow = age[row]
return titleRow
} else if pickerView == dropdown2 {
let titleRow = Gender[row]
return titleRow
}
return ""
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == dropdown1 {
self.textbox1.text = self.age[row]
} else if pickerView == dropdown2 {
self.textbox2.text = self.Gender[row]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33124 次 |
| 最近记录: |