私は実際にはうまくいかなかったいくつかのことを試しました(私が考えたより多くのこと)。
使用するときは、コントローラー[self dismissViewControllerAnimated:YES completion:nil];
のメソッドを実行するために必要です。viewDidLoad
これどうやってするの?しかし、おそらく、再開しているクラスではなく、このクラスの にcompletion
アクセスするだろうと思いました。viewDidLoad
私は実際にはうまくいかなかったいくつかのことを試しました(私が考えたより多くのこと)。
使用するときは、コントローラー[self dismissViewControllerAnimated:YES completion:nil];
のメソッドを実行するために必要です。viewDidLoad
これどうやってするの?しかし、おそらく、再開しているクラスではなく、このクラスの にcompletion
アクセスするだろうと思いました。viewDidLoad
ViewDidLoad
メソッドは一度だけ呼び出されます。呼び出された後dismissViewControllerAnimated
、parentViewControllersviewWillAppear
メソッドが呼び出されます。
viewDidLoad
~からコードを書くviewWillAppear
viewDidLoad
メソッドは、オブジェクトを再度作成した場合にのみ呼び出されます。viewWillAppear
代わりにコードを書くことができます。
viewDidLoad は、ビューがメモリにロードされたときにのみ呼び出されます。おそらくviewDidAppearを使用する必要があります。そこに実装することさえできます
-(void)viewDidAppear:(BOOL)animated{
[self viewDidLoad];
}
これは良い考えとは思えませんが。おそらく、viewDidLoad のコードの一部を別のメソッドに移動する必要がありますか?
Moxy のコメントは、あなたが探しているものに最も近いと思います。ビューが表示されるたびにではなく、最初のロード時にのみ実行したいメソッドがあるため、viewController を再ロードする必要がある場合があります (私の場合は通知に登録していました)。
あなたが呼び出す場合:
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
次に、ビューが次に表示されるときに ViewDidLoad が呼び出されます。
対照的に、次のように呼び出す場合:
[self dismissViewControllerAnimated:YES completion:nil];
その後、ビューが再度表示されたときに、ビューは viewDidLoad を呼び出しません。