私はいくつかのUITextFieldとUISwitch(Settings.appに基づいて)を持ついくつかのカスタムUITableViewCellでUITableViewをセットアップしました。私の質問は、ユーザーがナビゲーションバーの[保存]ボタンをクリックしたときに、これらのテキストフィールドにアクセスし、コントロールを切り替えて値を保存するうえで、どのような方法が良いでしょうか?iPhone Table View:カスタムTableViewCellのテキストフィールドにアクセスする方法
7
A
答えて
15
私の提案は、カスタムUITableViewCell
を使用しないことです。私はあなたのやり方をしていましたが、はるかに良い方法があります。 UITableViewCell
のaccessoryView
プロパティを使用します。UITextField
やUISwitch
などの任意のビューを割り当てることができます。設定アプリケーションとまったく同じように表示されます。あなたがそれにアクセスする必要がある場合に
すると、ちょうど
NSString *text = ((UITextField *)cell.accessoryView).text;
を使用すると、ただし、セルを設定し、それらの値にアクセスするには注意しなければなりません。いずれかのセルがオフスクリーンになると、そのセルは削除され、テキストフィールドにアクセスすることはできません。あなたがあなたのセルを設定する際やりたいことはある:
cell.accessoryView = nil; //Make sure any old accessory view isn't there.
if (/*cell needs text field*/) {
UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];
textField.text = savedValue;
cell.accessoryView = textField;
[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];
}
...
- (void) textChanged:(UITextField *)source {
self.savedValue = source.text;
}
0
あなたはエドの提案に従わない場合、あなたはおそらく最高のカスタムセル内のテキストビューを保持し、ビューにアクセスするためのプロパティを追加しています。
0
また、カスタムセルに上位レベルのView Controllerへの参照を保持させ、ユーザーがそれらの値を更新するときに通知を送信することもできます。基本的に、UIKitの多くのライブラリオブジェクトで使用されるデリゲートパターンをコピーします。
関連する問題
- 1. カスタムTableViewCellスーパークラスNIBにアクセス
- 2. iPhoneでカスタムPicker View Controllerを作成する方法は?
- 3. カスタムtableViewCell
- 4. Surface viewでビデオにアクセスする方法
- 5. tableViewをカスタマイズする方法Section View - iPhone
- 6. UITestsの `tableViewCell`の` detailTextLabel`にアクセスする方法は?
- 7. カスタムTableViewCellスウィフト
- 8. カスタムTableViewCell | Swift
- 9. カスタムView JavaコードからAttributeSetにアクセス
- 10. Xcode、Swift、Table View Controller
- 11. tableviewインスタンスを使用してtableviewcellにアクセスする方法
- 12. カスタムtableViewCell内でUiPickerViewを初期化する方法は?
- 13. Swift 3カスタムTableViewCellエラー
- 14. カスタムTableViewCellにUITextFieldを追加する
- 15. テキストフィールドをクリックしないでajax show table listを作る方法
- 16. AndroidのカスタムViewクラスから静的オブジェクトにアクセスする
- 17. iphone sdkのキーパッドと一緒にテキストフィールドを取得する方法
- 18. カスタムtableviewCellは、それが簡単にプロパティをモーダルにマップする方法 "のTextField"、
- 19. インデックスでカスタムTableViewCellにアクセスするにはどうすればよいですか?
- 20. カスタムTableViewCellのボタンからのメインビューへのアクセス
- 21. ランダム信号SigabrtでカスタムTableViewCell
- 22. Table View ControllerとTextField Inside ModalView
- 23. Image of Table View Swift 3
- 24. Unity(5.6.0)のテキストフィールドの値にアクセスする方法は?
- 25. iPhoneのテキストフィールドのカーソル位置を取得する方法
- 26. iPhoneテキストフィールド
- 27. サブビューのView Controllerからナビゲーションバーにアクセスする方法は?
- 28. ViewModelのView-Proppertiesにアクセスする方法(Caliburn.Microを使用)
- 29. 別のView ControllerでUserdefaultにアクセスする方法
- 30. セレンのidプロパティを持たないテキストフィールドにアクセスする方法
テキストフィールドを持つ複数のセルがある場合(連絡先アプリケーションの連絡先を追加するような場合)はどうでしょうか?ビューごとに異なるメソッドを追加する必要がありますか? – Rodrigo
ここにあるhttp://stackoverflow.com/questions/3572377/iphone-how-to-read-the-data-in-uitableview/3572595#3572595テキストフィールドのタグを変更できるので、1つの方法とスイッチを入れる。 – Rodrigo
私はUIControlEventEditingDidEndを使用します。 UIControlEventValueChangedは呼び出されていないようです:? – whatever0010011