2012-05-07 10 views
1

これはおそらく本当に簡単な質問です。もしあれば、私は謝罪します!私はちょうどXib ViewController

[self.view removeFromSuperview]; 

を使用し、元の表示に戻りしかし、私は再したい場合は

私はビューコントローラベースのアプリケーションを持って、私は

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

を使用して別の1 XIBから移動しますviewdidloadメソッドを呼び出します。もう一度ビューを作成せずにこれを行うにはどうすればいいですか?

答えて

0

addSubviewは、新しいビューコントローラが引き継ぐと、それは、ビューセットの現在持って正しい方法ではありません。

使用代わりに、このような何か:

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

あなたはストーリーボードを使用している場合、あなたは常にセグエを作成し、プログラムやストーリーボード自体を使用して設定を呼び出すことができます。

pre-iOS 5デバイスをサポートするにはUIViewControllerには古い方法(iOS5では廃止され、元の提案に置き換えられました)があります。

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated 
+0

こんにちはありがとう、私は古いOSで動作する必要があるため、私はストーリーボードを使用できません。だから私は上記を使用してviewdidloadメソッドを呼び出す必要がありますか? removefromviewメソッドを使用してビューを削除してもよろしいですか? –

+0

この呼び出しは、既存のView Controllerを指定した新しいView Controllerに置き換えます。私はあなたが 'viewDidLoad'でもこれをやりたいと思っていないか、元のview/xib/viewcontrollerは本質的にバイパスされて機能しなくなるでしょう。 – DBD

+0

ありがとう、これは多くの助けとなりました。 –