我为 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 的错误吗?我该如何解决?