2

私は実際にはうまくいかなかったいくつかのことを試しました(私が考えたより多くのこと)。

使用するときは、コントローラー[self dismissViewControllerAnimated:YES completion:nil];のメソッドを実行するために必要です。viewDidLoad

これどうやってするの?しかし、おそらく、再開しているクラスではなく、このクラスの にcompletionアクセスするだろうと思いました。viewDidLoad

4

4 に答える 4

9

ViewDidLoadメソッドは一度だけ呼び出されます。呼び出された後dismissViewControllerAnimated、parentViewControllersviewWillAppearメソッドが呼び出されます。

viewDidLoad~からコードを書くviewWillAppear

于 2013-07-22T09:38:37.300 に答える
1

viewDidLoadメソッドは、オブジェクトを再度作成した場合にのみ呼び出されます。viewWillAppear代わりにコードを書くことができます。

于 2013-07-22T09:41:23.920 に答える
1

viewDidLoad は、ビューがメモリにロードされたときにのみ呼び出されます。おそらくviewDidAppearを使用する必要があります。そこに実装することさえできます

-(void)viewDidAppear:(BOOL)animated{
    [self viewDidLoad];
}

これは良い考えとは思えませんが。おそらく、viewDidLoad のコードの一部を別のメソッドに移動する必要がありますか?

于 2013-07-22T09:39:54.947 に答える
0

Moxy のコメントは、あなたが探しているものに最も近いと思います。ビューが表示されるたびにではなく、最初のロード時にのみ実行したいメソッドがあるため、viewController を再ロードする必要がある場合があります (私の場合は通知に登録していました)。

あなたが呼び出す場合:

      [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

次に、ビューが次に表示されるときに ViewDidLoad が呼び出されます。

対照的に、次のように呼び出す場合:

      [self dismissViewControllerAnimated:YES completion:nil];

その後、ビューが再度表示されたときに、ビューは viewDidLoad を呼び出しません。

于 2013-10-31T20:30:25.470 に答える