1

这可能是一个非常简单的问题,如果是,我深表歉意!

我有一个基于视图控制器的应用程序,我从 1 xib 移动到另一个使用

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

当我返回到原始视图时,我只是使用

[self.view removeFromSuperview]; 

但我想重新调用 viewdidload 方法。我怎样才能做到这一点而不必再次创建视图?

4

1 回答 1

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
于 2012-05-07T19:24:56.677 回答