このコードをコンパイルして 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 のバグですか? どうすればそれを解決できますか?