2011-06-28 6 views
0

私はiPhoneアプリケーションを作成しています。特定のイベント、たとえばゲームに勝利したユーザーには、起動直後にアプリケーションを初期状態に戻したいと思います。たとえば、viewDidLoad()をもう一度実行するなど、Xcodeとobjective Cでこれを行う簡単な方法はありますか?ありがとうございました。特定のイベントでアプリケーションをリセットする

+3

これは実際にアプリの構造に依存します。 – PengOne

答えて

3

あなたはアプリの状態を担当しています - あなたは初期設定が何であるか知っていれば、すべてをその状態に戻すことができるはずです。簡単な[UIApplication reset]方法はありませんが、ジョブやすくするいくつかのテクニックがあります:あなたがアプリをリセットし、必要がある場合があります任意のオブジェクトが自分自身をリセットすることを確認するとき

  • ポストの通知は、(ビューコントローラとして)その通知を待ち受けます。

  • 初期化コードを別のメソッドに移動し、-initメソッドとリセット通知ハンドラの両方から呼び出します。

  • viewプロパティをnilに設定することによって、ビューコントローラを取得してそのビューをリロードすることができます。そのプロパティに次回アクセスするときは、-loadViewが呼び出され、関連する.xibがロードされるか、必要なビューが作成されます。

  • 多くの場合、アプリのデータモデルを初期状態にリセットすることができます。アプリ内のビューは通常、データモデルの状態を反映する必要があるため、データを消去すると、ビューが元の状態に戻る必要があります。

  • これが本当に必要な理由を検討してください。 「工場出荷時のデフォルトにリセット」ボタンをどこかに持っていれば意味があるかもしれませんが、より多くの設計が必要であることを示すかもしれません。なぜユーザーはすべてのデータを選択して削除できないのですか?この状態でユーザーがリセットしたがっている状態は何ですか?

+0

また、ルート状態のコントローラーをリロードすることもできます。 (Ewwww。) –

+0

非常に開放的な質問に対する素敵な答え! –

関連する問題