Xcode Xib视图控制器

Xcode Xib视图控制器,xcode,viewcontroller,Xcode,Viewcontroller,这可能是一个非常简单的问题,如果是,我道歉 我有一个基于视图控制器的应用程序,我使用 mainviewcontroller = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle: [NSBundle mainBundle]]; [self.view addSubview: mainviewcontroller.view]; 当我返回到原始视图时,我只使用 [self.v

这可能是一个非常简单的问题,如果是,我道歉

我有一个基于视图控制器的应用程序,我使用

        mainviewcontroller = [[MainViewController alloc]  initWithNibName:@"MainViewController" bundle: [NSBundle mainBundle]]; 
    [self.view addSubview: mainviewcontroller.view]; 
当我返回到原始视图时,我只使用

[self.view removeFromSuperview]; 
但是我想重新调用viewdidload方法。如何在不必再次创建视图的情况下执行此操作?

addSubview不是让新视图控制器接管并显示其视图集的正确方法

改用类似的方式:

MainViewController *mainviewcontroller = [[MainViewController alloc]  initWithNibName:@"MainViewController" bundle: [NSBundle mainBundle]]; 
[self presentViewController:mainviewcontroller animated:YES completion:completion:^{}];
[mainviewcontroller release];
如果您使用的是故事板,则始终可以创建一个segue并以编程方式调用它,或者通过故事板本身进行设置

为了支持iOS 5之前的设备,UIViewController还有一个较旧的方法,在iOS 5中被弃用,并被我最初的建议所取代

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

您好,谢谢,我不能使用故事板,因为这需要与旧操作系统一起使用。所以当我使用上面的方法时,它应该调用viewdidload方法?是否使用removefromview方法删除视图?此调用将用您指定的新视图控制器替换现有视图控制器。我怀疑您是否希望在viewDidLoad上执行此操作,否则您原来的view/xib/viewcontroller将基本上被忽略,无法正常工作。