如何从superview中删除多个视图

时间:2011-11-05 10:47:18

标签: objective-c uiview viewdidload

我有一些uiview,一个用这种方式打电话给另一个:

从第一次uiview:

MyViewController *contr1 = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.view addSubview:contr1.view];

从第二次uiview:

MyViewController2 *contr2 = [[MyViewController2 alloc] initWithNibName:@"MyViewController2" bundle:nil];
[self.view addSubview:contr2.view];

现在在第三个uiview中我希望返回第一次更新它(调用viewDidLoad)。我能怎么做?

1 个答案:

答案 0 :(得分:1)

首先 - 你做错了。

由于您正在使用视图控制器以模态方式呈现它们或推送它们:

MyViewController2 *contr2 = [[MyViewController2 alloc] initWithNibName:@"MyViewController2" bundle:nil];
[self presentModalViewController:contr2];

如果你想完全取消你的根视图控制器的模态控制器,你应该在你当前使用的控制器中获得一个指向它的指针,并发送一条消息来消除它上面的每个模态视图。

- (IBAction)doHomePage:(id)sender {
  MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
  [appDelegate.navigationController.rootViewController dismissModalViewControllerAnimated:YES];
}

您也可以使用viewDidLoad:viewWillAppear:代替viewDidAppear:

如果我手写的话,代码中有一些拼写错误,请事先抱歉。