当SecondViewController从其superview中删除时,FirstViewController无法正常工作

时间:2012-07-12 06:24:24

标签: ios xcode uiviewcontroller subview

我正在使用UIStoryBoard来允许FirstViewController将第二个ViewController的视图添加为子视图。在使用以下方法删除子视图时

FirstViewController.m

  - (IBAction) btnMoveTo:(id)sender
{

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
 UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Second"];
 vc.view.backgroundColor = [UIColor clearColor];
 self.modalPresentationStyle = UIModalPresentationCurrentContext;
 [self presentModalViewController:vc animated:NO];

}

SecondViewController.m

-(void)viewDidLoad{
   self.view.opaque = YES;
   self.view.backgroundColor = [UIColor clearColor];
}

 - (IBAction) withDraw:(id)sender{
     [self.view removeWithZoomOutAnimation:2 option:nil];
    }

当我访问withDraw函数时,将删除SecondViewController的视图并返回firstViewController。但是,当我使用按钮访问 - (IBAction)btnMoveTo:(id)发送器功能时。它不起作用。什么都没发生。任何建议或帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在混淆视图控制器的视图。视图控制器是控制视图的对象,因此对于您编写的第一行,

  

我正在使用UIStoryBoard来允许FirstViewController将第二个ViewController的视图添加为子视图。在使用以下方法删除子视图时

您无法将视图控制器添加为另一个视图控制器的子视图。您提供了一个管理自己视图的视图控制器,您可以将UIViews添加为UIViewController的子视图。 UIViewController管理UIView s。

您发布的代码遇到的问题是,当您触发withDraw:函数时,您将删除视图控制器的视图。不是视图控制器本身。您需要关闭SecondViewController才能再次访问FirstViewController。