-1

私はListTableViewいくつかのセクションで構成されたセルを持っています。別のコントローラーによって提供される別FilterTableViewの ( のフィルター設定)。ListTableViewのすべてのセルにFilterTableViewは、UISwitchの指定されたセクションの表示/非表示の状態を設定する がありますListTableView

BOOLの状態を正確に保存するにはどうすればよいUISwitchですか?

どのようなモデルを提供する必要がありますか?

UISwitchのセルの 状態を渡してFilterTableViewセクションを表示/非表示にする正しい方法は何ListTableViewですか?

事前にご協力いただきありがとうございます。

4

2 に答える 2

0

Filterデータ ソース内のアイテムへの参照をセルに渡して直接変更できるようにする (たとえば、オブジェクトを渡す) かFilterTableView、各セルのデリゲートを作成してセルに通知させる必要があります。スイッチ値が変更されたときにデリゲートします。

セルが一般的で、他の場所でも他の目的で使用する場合は、デリゲート パターンを使用します。しかし、それがこのテーブル ビューに固有のものである場合は、Filterオブジェクトを渡すだけの方がおそらく簡単です。そうすれば、データ ソースに値を設定させるのではなく、ラベルを設定して状態を切り替えることもできます。

于 2016-02-16T17:17:17.920 に答える
0

ストロイボードを使用している場合は、アンワインド セグエを作成できます (FilterTableViewCtrl から ListTableViewCtrl に戻るため)。この場合、ListTableViewCtrl にあるアンワインド アクション メソッドにデータを保存できます。

- (IBAction)unwindToList:(UIStoryboardSegue*)unwindSegue
{
    UIViewController* sourceViewController = unwindSegue.sourceViewController;
    if ([sourceViewController isKindOfClass:[FilterTableViewCtrl class]])
    {
        FilterTableViewCtrl* filter = (FilterTableViewCtrl*)unwindSegue.sourceViewController;
        //read state of filter, and update list (self)
    }
}

詳細: iOS 用 View Controller プログラミング ガイド / アンワインド セグエの作成

于 2016-02-16T19:21:57.817 に答える