0

2つのViewControllerで構成されるiPhoneアプリケーションがあります。メインのものとヘルプ画面付きのもの。それぞれに、一方から他方へのセグエを実行するボタンがあります。

私が抱えている問題は、ヘルプ画面からメイン画面に戻ると、メインビューコントローラーのviewDidLoadメソッドが呼び出されるため、アプリを最初に起動したときに行ったすべての初期化が繰り返されることです。ビューコントローラに、初期化を実行できる、一度だけ呼び出される別のメソッドはありますか?

私の最初の考えは、「最初にfalseに設定されたブール変数を用意し、次にviewDidLoadでテストし、falseの場合は初期化を実行してから、trueに設定する」というものでした。最初の場所?

4

2 に答える 2

2

私の推測では、「プッシュ」セグエ(iOSアプリで実行できる最も標準的な種類のセグエ)を実行していると思います。「プッシュ」セグエを使用している場合は、ナビゲーションコントローラーがインストールされていることを意味します。アプリ。

ここで行う最善の方法は、別の「メイン」ビューコントローラーを他のビューコントローラーのスタックにプッシュすることではなく(viewDidLoadメインビューを押すたびに「」が呼び出されるのはこのためです)、代わりに「移動」をクリックするとヘルプ画面の[メインに移動]ボタンをクリックし、ヘルプ画面をオフにして前の画面に戻りますこれを行う呼び出しは、UINavigationControllerのpopViewControllerAnimatedメソッドです。

これを行うとviewDidLoad、メインビューが一度読み込まれるため、そのビューコントローラで「」が呼び出されるのは1回だけです。

于 2013-02-15T21:29:08.003 に答える
1

.mクラスファイルでboolを作成します@implementaition

@implementation yourClass{

    bool initialize = 0;
}

次に、ロードされたビューでテストします。

-(void)viewDidLoad{

    if(initialize == 0){

    //do everything you need to do

    initialize = 1;

    }
}

私はそれがうまくいくと思います...

于 2013-02-15T21:28:53.780 に答える