2017-02-07 9 views
0

ハローみんなのUIViewControllerするためのUIViewを使用する場合ピッカーデータを設定する方法について説明します。別のビューでピッカーを作成し、そのビューをtabviewで呼び出して使用します。iOSの - 私は、私はポケモンずかんKK</p> <p>よう必要がありますが、私はいくつかの問題を抱えているいくつかのutilを作るしようとしている

しかし、データの設定方法はわかりません。私がuiviewcontrollerでピッカーを作ったら、私はdidloadでデータを設定できますか?方法ですが、私が設定できる方法はdidloadという方法がありません。

これは私のコード

SelectPoke.swift

class SelectPoke: UIView , UIPickerViewDelegate , UIPickerViewDataSource{ 
@IBOutlet var textField: UITextField! 

var data = ["1","2","3"] 
var picker = UIPickerView() 

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

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

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    textField.text = data[row] 
} 

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

func h(){ 
    picker.delegate = self 
    picker.dataSource = self 
} 

override func awakeFromNib() { 
    h() 
} 

class func instanceFromNib() -> UIView { 
    return UINib(nibName: "SelectPoke", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView 
} 

}

Tab1ViewController.swift

あります

}

plz help me。私のポケモンは通常..

+0

実際に 'SelectPoke'をUIViewサブクラスとして使用することは意図していますか? 一般に、デリゲートとデータソースを 'Tab1ViewController'に実装します。 –

+0

ビューをロードするときにinitWithCoderメソッド呼び出しがあるかどうかを確認します。 –

答えて

0

を待っている、あなたはUIPickerViewをサブクラス化するが、ストーリーボード(またはXIBファイル)でビューを作成し、 Tab1ViewControllerでデリゲートとデータソースを接続しないでしょう。現在、私はXcodeの実行されていないので、小さなsyntactialがあるかもしれません:

それにもかかわらず、このコードでは私たちは、元の質問

備考に類似したコードを保つために、viewDidLoadに新しいUIPickerViewを作成しますこのコード例のエラー

class Tab1ViewController: UIViewController, UIPickerViewDelegate , UIPickerViewDataSource { 

    var data = ["1","2","3"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let sideView = UIPickerView() 
     sideView.frame = self.view.frame 

     self.view.addSubview(sideView) 
     sideView.delegate = self 
     sideView.dataSource = self 

    } 

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

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

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

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     textField.text = data[row] 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     return data[row] 
    } 
} 
関連する問題