【问题标题】:iOS - dismissing a facebook window do not fires dismissViewController completion blockiOS - 关闭 facebook 窗口不会触发dismissViewController 完成块
【发布时间】:2012-11-13 14:21:36
【问题描述】:

我已经为 iOS 6 编译并运行了这段代码。

SLComposeViewController *control = [SLComposeViewController composeViewControllerForServiceType:...];
[control setInitialText:...];
[control addURL:...];
[control setCompletionHandler:^(SLComposeViewControllerResult result) {
    [self dismissViewControllerAnimated:YES completion:^{
        // do something
    }];
}];
[self presentViewController:control animated:YES completion:nil];

如果它被用作 Twitter 控件,它工作正常,但如果它被用作 Facebook 控件,dismissViewController 的完成块不会被调用,永远! (doSomething 部分永远不会运行)。

我认为这可能与控制器在主线程上被解除有关,所以我将其更改为

dispatch_async(dispatch_get_main_queue(), ^{
        [self dismissViewControllerAnimated:YES completion:^{
             // do stuff... 
         }];
});

没有成功。

这是 iOS 6 的错误吗?我该如何解决?

【问题讨论】:

    标签: iphone ios facebook ipad twitter


    【解决方案1】:

    这是解决方案:

    [self dismissViewControllerAnimated:YES completion:nil];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.6 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        // do stuff
    });
    

    这可能是与dismissViewController API 相关的iOS 6 错误。

    编辑:我创建了一个更强大的解决方案和 posted here

    【讨论】:

      猜你喜欢
      • 2013-09-14
      • 1970-01-01
      • 2021-05-23
      • 2018-01-20
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2020-01-30
      • 2012-12-04
      相关资源
      最近更新 更多