1

ビュー ClassB.m をロードした後、ClassA.m の変数の値にアクセスする必要がありますが、ビューを ClassA から ClassB に切り替えると、クラス A の変数が破棄されるようです。ClassA でこの変数を維持する最良の方法は何ですか? Java では、これは静的変数の形式でかなり簡単になります。しかし、私は Objective-C でそのような概念を認識していません。「extern」変数の使用をお勧めする場合は、それを試してみましたが、ビューの切り替え後にその変数タイプも破棄されたようですか? おそらく私は間違って実装していますが、どう思いますか? 最初のビューを閉じた後、2 番目のビューで変数の値を保持するにはどうすればよいですか?

4

3 に答える 3

2

新しいviewcontrollerでプロパティを作成し、現在のviewcontrollerの変数をnewに渡すことができます。経験値を参照してください。

    DetailsViewController *detailsviewcontroller = [[DetailsViewController alloc] initWithNibName:@"EventDetailsViewController" bundle:nil];
eventdetailsviewcontroller.event = localvar;
[self.navigationController pushViewController:detailsviewcontroller animated:YES];
于 2013-09-28T04:16:57.273 に答える
1

とりあえず静的変数は忘れてください。アイデアは、どのビューがオンになっているかに関係なく、オブジェクトがこれらの変数の参照を保持するようにすることです。それがメディエーターパターンの目的です。基本的に、コントローラーのコントローラーが必要であり(シングルトンにする)、そのコントローラーは、ビューが行き来する間、保持したいすべての変数への参照を保持できます。

このようにしてコードを分離することで、無関係な可能性のあるコントローラー間の依存関係を減らし、グルー コードを減らすことができます。

ここでも同様の回答をしました。

于 2013-09-28T04:30:12.453 に答える