2011-12-14 20 views
0

私が所有する各ViewController内のすべてのメソッドにアクセスできるAppDelegateのインスタンスを取得しようとしています。他のクラス変数で宣言しようとすると、Initializer Element is not a compile-time constantとなります。 ViewController内のメソッドで宣言すると、私はそれを使用することができます。私はAppDelegateで設定したプロパティに整数や浮動小数点数を保存しようとしています(私が知っている大きなノー・ノーですが、これは入門クラスのプロジェクトです。これまで行ってきたことはMVCのパラダイムに準拠していません)。アプリはツールバーを使用して、アプリケーションのViewControllerを使用してビュー間を切り替え、他のViewControllerをサブビューとして読み込みます。私はAppDelegateの宣言と更新ステートメントを各View ControllerのViewDidUnloadメソッドに入れようとしていましたが、Viewが切り替わるたびにViewsがアンロードされることはわかりません(現在のViewをSuperViewから削除し、インデックス0のサブビューとして新しいもの)。現在表示されていないビューはどうなりますか? AppDelegateの宣言と更新を実装できることを検出するメソッドはありますか?ViewController全体でアクセス可能なデリゲートオブジェクトを作成する方法

私は全体で更新された量の多くを持っており、それらの量は、できるだけ早くAppDelegates値で更新したいと思いますので、理想的に、私は私のViewControllersのいずれかの方法でAppDelegateオブジェクトにアクセスできるようにしたいと思います彼らは私が事前にみんなでスーパー

おかげ

からクリアされたビューで何が起こるかわからないから、起こる

答えて

2

あなたはどこでもあなたのアプリケーション内から[[UIApplication sharedApplication] delegate]を経由してアプリのデリゲートにアクセスすることができます。

はありません。は、オブジェクトの別のコピーを自分でインスタンス化します。システムは起動時にこれを行います。

変更を検出する場合、viewDidDisappearメソッドをUIViewControllerに上書きできます。 (あなたは正しい - 一般的に、切り替えたときにアンロードされず、viewDidUnloadは呼び出されません)

関連する問題