2016-03-05 32 views
0
import UIKit 

class SecondViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { 

//UI TextFields 
@IBOutlet weak var ChassisText: UITextField! 

@IBOutlet weak var YearFromText: UITextField! 

@IBOutlet weak var YearToText: UITextField! 

@IBOutlet weak var MakeText: UITextField! 

@IBOutlet weak var ModelText: UITextField! 

//Used Variables 
var YearFrom:String = "0" 
var YearTo:String = "2020" 
var ChassisNumber:String = "" 
var ArrayYear:[String] = [""] 
var ArrayMake = [String]() 
var ArrayModel = [String]() 
var i:Int = 0 
var holdSelect = 0 
//UIPickerView 
var pickerselection: UIPickerView! 

//Boolean Variables 
var checkYearFrom: Bool = false 
var checkYearTo: Bool = false 
var checkMake: Bool = false 
var checkModel: Bool = false 

//Picker Actions 
func DonePicker() 
{ 
    if checkYearFrom { 
     YearFromText.text = "\(ArrayYear[holdSelect])" 
     YearFrom = "\(ArrayYear[holdSelect])" 
     YearFromText.resignFirstResponder() 
     checkYearFrom = false 
    } 
    else if checkYearTo { 
     YearToText.text = "\(ArrayYear[holdSelect])" 
     YearTo = "\(ArrayYear[holdSelect])" 
     YearToText.resignFirstResponder() 
     checkYearTo = false 
    } 
} 
func CancelPicker() 
{ 
    YearFromText.resignFirstResponder() 
    YearToText.resignFirstResponder() 
    ModelText.resignFirstResponder() 
    MakeText.resignFirstResponder() 
} 

//Picker View Functions 
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 
{ 
    if checkYearFrom || checkYearTo { 
     return ArrayYear[row] 
    } 
    else 
    { 
     return ArrayYear[row] 
    } 
} 
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int 
{ 
    if checkYearFrom || checkYearTo { 
     return ArrayYear.count 
    } 
    else 
    { 
    return ArrayYear.count 
    } 
} 
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int 
{ 
    return 1 
} 
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
{ 
    holdSelect = row 
    pickerView.reloadAllComponents() 
} 

}如何在選取器視圖中填充「ArrayYear」?

我有上述程序,也創造了選擇器視圖的取消,做buttonItem整個代碼。

這行代碼是我創建年的陣列:

var YearFrom:String = "0" 
var YearTo:String = "2020" 
var ArrayYear:[String] = [""] 
var i:Int = 0 

在viewDidLoad中這是在for循環全年創建:

for var index = 1980; index <= 2016; index++ { 
     ArrayYear.insert("\(index)", atIndex: i) 
    } 

    i = 0 

    //Creating Picker Programatically 
    pickerselection = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300)) 
    pickerselection.backgroundColor = .whiteColor() 
    pickerselection.showsSelectionIndicator = true 
    pickerselection.delegate = self 
    pickerselection.dataSource = self 

在運行階段時,我在'YearFromText'上測試了我創建的數組中沒有顯示的選擇器視圖(1980 - 2016)。

ArrayYear的實現有什麼問題嗎?

我是新來的swift編程。

回答

1

如果你只是想在一個陣列的歲月,那麼你可以簡單地這樣做:

let years = (1980...2016).map { String($0) }