删除父视图

时间:2014-01-18 12:31:21

标签: objective-c

我在storyBoard viewA上有viewControllerA,而不是此视图中的某个按钮会转换(模态)到下一个viewB - 具有viewControllerB {1}},而不是来自B我也会使用模态转换转到C。(我通过将视图中的按钮拖动到故事板中的另一个视图来进行转换)

当我完成C后,我想回到A

所以我可以解雇C

[self dismissViewControllerAnimated:YES completion:nil];

将我带回B,但我需要转到A

  1. 我尝试将视图控制器从B传递到C,而不是解除B内的C - 没有工作
  2. 我应该将故事板中的一行从C拖回A吗?
  3. B转到C时,storyboard中是否有办法解除B
  4. 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

试试这段代码对我有用。也许它也适合你:)

[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];

注意使用 parentViewController 表示iOS5版本及iOS5以上代码。

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];    

答案 1 :(得分:0)

所以这是一个适合你的实例。

在ControllerB中

,添加属性

@property (nonatomic) BOOL dismissWhenAppear;

并添加viewDidAppear函数

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    if (self.dismissWhenAppear) {
        [self dismissViewControllerAnimated:NO completion:nil];
    }
}

在ControllerC中,你有

-(void)buttonClicked:(UIButton *)button {
    if (([self.presentingViewController isKindOfClass:[TestViewController1 class]])) {
        ((TestViewController1 *)self.presentingViewController).dismissWhenAppear = YES;
    }
    [self dismissViewControllerAnimated:YES completion:^{
        [self.presentingViewController dismissViewControllerAnimated:NO completion:nil];
    }];
}