2016-10-15 4 views
0

私はプログラムではまったく新しく、アプリケーションを構築しようとしていますが、私の問題を解決する方法を見つけることはできません。すべての助けが喜んで感謝!!!!未解決の識別子を使用し、同じ情報を含む2つの異なるpickerViewを認識します。スウィフトで

私のアプリには2つのpickerViewがあり、それぞれのpickerViewには同じ情報が含まれています。私の問題は、両者の情報にアクセスしてから、GoogleまたはYahooに接続して2の間で適切な計算を見つけて、その計算をディスプレイの下部に表示することです。

私が行ったことは、pickerViewの関数didSelectRowを使用し、モーダルアラートを追加したので、pickerViewをスクロールすると関数が動作していることがわかりますが、pickerViewsとIの両方pickerViewの両方を完全に別個の関数にしたい。

私の主な問題は、didSelectRowのデータにアクセスすることができないため、別の関数で計算を行うことができるということです(接続するまで、計算/変換をプレースホルダ乗数で処理する関数を設定しました) APIへのリンク)。私はその関数からのデータが範囲外であることを知っています(それはコンパイラが私に与えているエラーです)。しかし、情報へのアクセス方法を理解できず、数週間は探しています。

ありがとうございます!すべての援助は喜んで感謝!!!!! Ps。これはSwiftにあります。

答えて

1

あなたは2 pickerViewsへ@IBOutlet秒作成した場合:

@IBOutlet weak var picker1: UIPickerView! 
@IBOutlet weak var picker2: UIPickerView! 

をあなたが持つそれぞれの選択された行にアクセスすることができます。

let row1 = picker1.selectedRow(inComponent: 0) 
let row2 = picker2.selectedRow(inComponent: 0) 

あなたはその後、ある配列に指標としてこれらを使用することができますあなたのピッカーのためのデータを提供する。

は一例として、私は2つのピッカーでビューを作成し、私はピッカーの変更のたび1合計を印刷する:私はseprate機能を持っている必要がありますを除いて、

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 

    @IBOutlet weak var picker1: UIPickerView! 
    @IBOutlet weak var picker2: UIPickerView! 

    var data = [1, 2, 3, 4, 5] 

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

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     let sum = data[picker1.selectedRow(inComponent: 0)] + data[picker2.selectedRow(inComponent: 0)] 
     print(sum) 
    } 

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

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

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

私はあなたがそこに持っている正確に何を持っています計算/変換のためにはAPIに接続し、文字列をすでに持っているtextFieldから数値に変換する必要があるからです。私が必要とするのは、pickerViewsで選択されたデータのタイトルで、ディスプレイの下部にあるラベルに表示されます。 –

+0

私が話していることを理解していますか、それとも深く行きたいですか? –

+0

だから、ちょうど別の関数で表示するdidSelect関数で選んだデータの名前が必要ですが、スコープの問題があり、修正方法がわかりません。 –

関連する問題