0

私は3つのView Controllerを持っています。

  • ナビゲーションコントローラー -N
  • テーブル ビュー コントローラー -T
  • カスタム ビュー コントローラー -C

    それらのレイアウトは次のようになります。

    N-(ルート ビュー コントローラー)-> T-(バー ボタン アイテムの追加 - セグエのトリガー)->C

    明確にするために、モーダルTに表示するトリガーされたセグエアクションを持つ「追加」ボタンがあります。C

    CTどちらにもカスタムクラスがあります。Cは単純なUIViewControllerサブクラスTですが、 はUITableViewControllerサブクラスです。

    私はTそう宣言しNSMutableArrayますUITableView

    @interface T: UITableViewController {
        NSMutableArray *myTableData;
        IBOutlet UITableView *myTableView;
    }
    

    にはC、次の 2 つの要素があります。

  • UITextField
  • UIButton送信」と呼ばれる

    テキスト フィールドを のヘッダーのように IBOutlet に接続しC、ボタンのアクションを作成します。

    @interface C: UITableViewController {
        IBOutlet UITextField *itemToAdd;
    }
    -(IBAction)addItem:(id)sender;
    

    したがって、のテーブルにデータmyTableDataを入力するデータ配列がT宣言され、初期化されています(のメソッドにTa を追加します) 。myTableData = [[NSMutableArray alloc] init]viewDidLoadT

    のナビゲーション バーの [追加] ボタンをTクリックすると、明らかにCテキスト フィールドからテキストが表示され、取り込まれます。

    次に、最後に送信ボタンが押されたときに、そのテキストをテキスト フィールドからmyTableData配列に追加し、破棄Cし (これを で行う予定です)、行った変更を反映するように[self dismissViewControllerAnimated:YES completion:nil]テーブル ビューを更新します。myTableView

    どうすればこれを達成できるかについて誰か考えがありますか? myTableData主に、(に住んでいるT) FROMに何らかの形でアクセスするのに助けが必要Cです。次にT、何らかの変更が行われたことを認識し、そのセルを再描画する必要があります (おそらく cellForRowAtIndexPath を開始することによって)。これをすべてハードコードされたAppleのドキュメントで行う方法は知っていますが、ストーリーボード内のすべてを視覚的に表現したい場合、その方法は実行できないことがわかりました。

    私のアプローチが完全に間違っていて、これらすべてのクラスやメソッドを必要としない場合、またはすべて間違っている場合は、ストーリーボードを使用して同様のアプローチを教えてください。

  • 4

    1 に答える 1

    0

    を作成してNSMutableArrayに保存しますNSUserDefaults。方法は次のとおりです。

    あなたC - UIViewControllerの、sendボタンでIBAction

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *arr = [defaults objectForKey:@"data"];
    [arr addObject:WHATEVER_YOU_WANT_TO_ADD];
    [defaults setObject:arr forKey:@"data"];
    [defaults synchronise];
    

    これと同じ方法を T! でも使用できます。

    于 2013-11-05T08:03:19.717 に答える