我正在使用 swift 2.0(我也是 Swift 和 iOS 开发的新手)......
我想要一个有两个 UIPickers 的 View Controller 。谁能建议如何做到这一点?
我的 View Controller 类...
import UIKit
class CreateSessionViewController : UIViewController, UIPickerViewDataSource,UIPickerViewDelegate {
//Outlets:
@IBOutlet var durationPicker: UIPickerView!
@IBOutlet var typePicker: UIPickerView!
//Dummy duration array:
var durationArray = ["10", "20", "30", "40", "50", "60"];
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.durationPicker.dataSource = self;
self.durationPicker.delegate = self;
}
//Picker view methods:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return durationArray.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return durationArray[row]
}
}
现在,durationPicker 运行良好,但我将如何填充 typePicker?
最佳答案
您应该使用传递给每个委托(delegate)方法的 pickerView 对象:
//Picker view methods:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
if pickerView == durationPicker {
return 1
} else if pickerView == typePicker {
return 2
}
return 0
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == durationPicker {
return durationArray.count
} else if pickerView == typePicker {
return typeArray.count
}
return 0
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == durationPicker {
return durationArray[row]
} else if pickerView == typePicker {
return typeArray[row]
}
return nil
}
关于Swift - 带有多个 UIPickers 的 View Controller .,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524835/