【问题标题】:[ dismissViewControllerAnimated:YES completion:nil]; not working for iOS device 7[dismissViewControllerAnimated:YES 完成:nil];不适用于 iOS 设备 7
【发布时间】:2015-02-25 12:40:40
【问题描述】:
  [ dismissViewControllerAnimated:YES completion:nil]; 

不适用于 ios7 设备,但适用于模拟器。 我知道这个问题已经被问过了,但我在那里没有找到答案。 XCODE 版本:6.1 iphone 4s ios7

- (IBAction)createThread:(id)sender {

  UIViewController *vc = [self presentingViewController]; //ios 5 or later
 [self dismissViewControllerAnimated:YES completion: nil];

  [[vc presentingViewController] dismissViewControllerAnimated:YES completion:nil];
 }

实际上我想从第三个视图控制器转到第一个视图控制器。它适用于模拟器,但在 iphone 中,第三个视图控制器消失了,但它卡在第二个视图控制器上,而不是第一个视图控制器。

【问题讨论】:

  • 可能是因为您调用这两个dismiss... 方法的速度太快了,而且从iOS7 开始,您无法对导航堆栈进行任何更改,直到最后一个过程(包括其动画)完成。您可能在控制台上收到了警告。

标签: ios objective-c iphone


【解决方案1】:

如果你想从第 3 个转到第一个 UIViewController,试试这个:

[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil];

【讨论】:

    【解决方案2】:

    您还可以使用以下代码尝试级联类型效果:

    UIViewController *vc = [self presentingViewController]; //ios 5 or later
    [self dismissViewControllerAnimated:YES completion:^{
        [[vc presentingViewController] dismissViewControllerAnimated:YES completion:nil];
    }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2016-02-04
      • 2015-11-28
      • 2016-10-16
      • 1970-01-01
      相关资源
      最近更新 更多