2016-08-31 5 views
0

私はXcodeをすばやく始めたばかりで、UIPickerViewについていくつかの助けが必要です。2つのUIPickerViewと異なる組み合わせが異なる写真につながります

"From"という名前のUIPickerViewと "To"という名前の2つのUIPickerViewを作成しようとしています。 「From」にA、B、「To」にBが含まれている

基本的に、「From」がA、「To」がBの場合、車の写真は同じviewControllerに表示されます。 「From」がB、「To」がBの場合、イチゴの写真が表示されます。

誰も私にどのようにこれを行うためのヒントを教えてもらえますか?私は最初のUIPickerViewを作成することしかできませんでした。

import UIKit 

class ViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource { 

    @IBOutlet var Picker1:UIPickerView! 

    var Array = ["A","B","C"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib 

     Picker1.delegate = self 
     Picker1.dataSource = self 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     return Array[row] 
    } 

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return Array.count 
    } 

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
     return 1 
    } 
} 

答えて

2
var savedVal1 = "" as String 
var savedVal2 = "" as String 
var array1 = NSArray() 
var array2 = NSArray() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    Picker1.delegate = self 
    Picker1.dataSource = self 
    Picker1.tag = 1 

    Picker2.delegate = self 
    Picker2.dataSource = self 
    Picker2.tag = 2 
} 


func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    if pickerView.tag == 1 { 
     return array1[row] 
    } 
    else{ 
     return array2[row] 
    } 
} 


func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    if pickerView.tag == 1 { 
     return array1.count 
    } 
    else{ 
     return array2.count 
    } 
} 

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{ 

    return 1 
} 

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int){ 
     if pickerView.tag == 1 { 
      savedVal1 = array1[row] 
      // compare 2 values here & then take steps which fulfill your criteria. 

     } 
     else{ 
      savedVal2 = array2[row] 
      //compare 2 values here & then take steps which fulfill your criteria. 
     } 
    } 

ようUIPickerViewDelegateでピッカービュー、UIPickerViewDataSource方法を確認してくださいしている場合は、

Picker1.delegate = self 
Picker1.dataSource = self 

をやってのviewDidLoad負荷で

@IBOutlet var Picker2:UIPickerView! 

それが役に立てば幸い。

+0

"@IBOutlet weak var Picker1:UIPickerView!"のように、2つのpickerviewをスクリプトにドラッグアンドドロップする必要がありますか? & "@IBOutlet weak var Picker2:UIPickerView!"現れる?申し訳ありませんが、私はxcodeの新機能ですので、上記のスクリプトが実際に行っていることについて少し混乱しています。お世話になりました。ありがとうございました。 –

+0

また、私は2つの異なる配列を持つことができますか?例えば、最初のUIPickerViewはA、Bを持ち、2番目のUIPickerViewはB、Cを持ちますか? –

+1

2つのPickerViewを作成する必要はありません。作成して差別化のためにタグ付けすることができます。もちろん、2つの異なる配列を使用できます。私の編集された答えを見てください。 :) –

0

あなたのPickerView2はどこですか?あなたは、同じデータソースを使用するか、または別の

If (Picker1) { 

} else if (Picker2) { 

} 
関連する問題