2012-05-07 52 views
1

這可能是一個非常簡單的問題,我很抱歉如果是這樣!Xib ViewController

我有一個視圖控制器基於應用程序,我從1 XIB移動到另一個使用

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

當我返回到原來的觀點我只是用

[self.view removeFromSuperview]; 

但我想重新 - 調用viewdidload方法。我怎樣才能做到這一點,而無需再次創建視圖?

回答

0

addSubview是不是正確的方式有一個新的視圖控制器接管並呈現它的視圖集。

使用這樣的事情,而不是:

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 
+0

嗨謝謝你,我不能使用故事板,因爲這需要使用較舊的操作系統。所以當我使用上面它應該調用viewdidload方法?我使用removefromview方法刪除視圖嗎? –

+0

該調用將用您指定的新調用替換現有的視圖控制器。我懷疑你會想''viewDidLoad'做到這一點,或者你的原始視圖/ xib/viewcontroller將基本上被繞過並且不起作用。 – DBD

+0

謝謝,這有很多幫助。 –

相關問題