1

これはおそらく非常に単純な質問であり、そうであれば申し訳ありません!!

ビューコントローラーベースのアプリケーションがあり、次を使用して1つのxibから別のxibに移動します

        mainviewcontroller = [[MainViewController alloc]  initWithNibName:@"MainViewController" bundle: [NSBundle mainBundle]]; 
    [self.view addSubview: mainviewcontroller.view]; 

元のビューに戻ると、使用するだけです

[self.view removeFromSuperview]; 

しかし、viewdidload メソッドを再度呼び出したいと思います。ビューを再度作成せずにこれを行うにはどうすればよいですか?

4

1 に答える 1

0

addSubview新しいView Controllerに引き継ぎ、そのビューセットを表示させる正しい方法ではありません。

代わりに次のようなものを使用してください。

MainViewController *mainviewcontroller = [[MainViewController alloc]  initWithNibName:@"MainViewController" bundle: [NSBundle mainBundle]]; 
[self presentViewController:mainviewcontroller animated:YES completion:completion:^{}];
[mainviewcontroller release];

ストーリーボードを使用している場合は、いつでもセグエを作成してプログラムで呼び出すか、ストーリーボード自体から設定できます。

iOS 5 より前のデバイスをサポートするUIViewControllerには、古い方法もあります (これは iOS5 で廃止され、私の最初の提案に置き換えられました)。

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
于 2012-05-07T19:24:56.677 に答える