2015-01-20 3 views
0

У меня есть существующий Viewcontroller с 2 UIPickerviews. Теперь я хочу добавить еще один UIPickerview с другой переменной. Как это сделать?Добавить другой UIPickerView в UIViewController

class ViewController: UIViewController,UIPickerViewDelegate { 

@IBOutlet weak var pickerview1: UIPickerView! 
@IBOutlet weak var pickerview2: UIPickerView! 
@IBOutlet weak var pickerview3: UIPickerView! 

var reps = ["1 x","2 x","3 x","4 x","5 x","6 x","7 x","8 x","9 x","10 x","11 x","12 x","13 x","14 x","15 x","16 x","17 x","18 x","19 x","20 x","21 x","22 x","23 x","24 x","25 x"] 

var weight = [["0","1","2","3","4","5"], 
      ["0","1","2","3","4","5","6","7","8","9"], 
      ["0","1","2","3","4","5","6","7","8","9"],[","], 
      ["0","25","5","75"],["kg","lbs"]] 

var exercises = [["A","B","C"],["X","Y","Z"]] 


func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 

    return ((pickerView == pickerview2) ? reps.count : weight.count) 

} 

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 

    return ((pickerView == pickerview2) ? 1 : weight[component].count) 

} 

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 

    return ((pickerView == pickerview2) ? reps[component] : weight[component][row]) 

} 

Третий UIPickerview должен показывать переменные упражнения в Viewcontroller.

ответ

0

Вы можете использовать переключатель заявление

Например:

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    switch pickerView { 
    case pickerview1: 
     return reps.count 
    case pickerview2: 
     return weights.count 
    case pickerview3: 
     return exercises.count 
    default: 
     assertionFailure("Unknown pickerView") 
    } 
} 

Side Примечание: Я соответствует вашим имена переменных, но я думаю, что вы должны сделать свой pickerView имена переменных верблюжьего, т.е. pickerView1 вместо of pickerview1.

+0

Большое спасибо, но произошла ошибка «Отсутствует возврат в ожидаемой функции« Int ». Я не совсем понимаю. – santaklaus805

+0

Извините, попробуйте добавить assertionFailure() в случай по умолчанию вместо «break», который должен позаботиться об ошибке компиляции. Я обновил код. – Jawwad

+0

Большое вам спасибо. Он работает нормально. – santaklaus805

Смежные вопросы