2016-05-02 14 views
0

内のUI要素から私は、これらの細胞は、私が集まっている必要があるなどUITextViewUISwitchUISliderUITextFieldデータ収集のUITableViewCell

を有していてもよくUITableViewCellの多くの異なる種類でUITableViewを使用してフォームを構築していますすべてのユーザーの入力はDictionaryになるので、ユーザー入力をサーバーに送り返すことができます。

データを収集する最も良い方法は、すべてのUI要素の代理人をコントローラに設定することですか?その後、

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

sampleTextView.delegate = self 
sampleTextView.tag = [tagNumber] 

UITextViewためので

、そしてテキストを取得し、- textViewDidEndEditing:

ノートで辞書を更新/追加する - また、フォームが動的に構築されており、変更することができます。あなたのUIViewControllerタグ

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     //... config cell 

     cell.sampleTextView.delegate = self 
     cell.sampleTextView.tag = indexPath.row 

     //because you are use UITableView in dynamic mode textView will lost text in scrolling , 
     if formInfo.objectForKey(textview.tag) != nil { 
      cell.sampleTextView.text = formInfo.objectForKey(textview.tag) as? String 
     } 

    } 

として、あなたのTextViewの委任にindexPath設定あなたのcellForRowAtIndexPathメソッドで

var formInfo:NSMutableDictionary = [:] 

+0

あなたは自分の要素のためのデリゲートを設定しますあなたのクラスをそれらの要素のイベントの変化に対応させる。これが基本的なステップです。それらからデータを取得するには、デリゲートを設定する必要はありません。要素の属性からデータを取得するだけです。あなたの質問は広すぎます.PPLはあなたがしようとしていることの詳細を提供します。 –

+0

@TejaNandamuri「要素属性からデータを取得する」という意味がわかりません。ユーザは、基本的に 'UITableView'を使って構築されたフォームを記入していますが、多くの異なるタイプのUIオブジェクトがあります。私はすべての入力データをキャプチャして保存したいと思います。すべてのデータをキャプチャする最良の方法は何かを尋ねているので、ユーザーが「送信」を押すと、すべての情報をサーバーに送信できます。 – Alan

+0

@Alan入力された詳細が単純な場合、ローカルインスタンス変数はそれらを格納することができ、SUBMITではこれらの変数を使用してサーバーがサポートする形式で要求を形成できます。 – Preson

答えて

0

は:

func textViewDidChange(textView: UITextView) { 

     formInfo.setObject(textView.text, forKey: textView.tag) 

    } 
関連する問題