我有一些看起来像这样的社交分享代码:
SLComposeViewController *composer = [SLComposeViewController composeViewControllerForServiceType:…];
[composer setInitialText:…];
[composer addURL:…];
[composer setCompletionHandler:^(SLComposeViewControllerResult result) {
[someController dismissViewControllerAnimated:YES completion:^{
… // 1
}];
}];
[someController presentModalViewController:composer animated:YES];
问题是 Facebook 和 Twitter 的代码行为不同。当用户确认 Facebook 撰写屏幕时,作曲家显然会自行解散,因为标记为 1 的完成处理程序从未被调用,即使我删除了dismissViewControllerAnimated:
调用,一切正常。
另一方面,当用户确认 Twitter 撰写屏幕并且我没有手动关闭它时,撰写屏幕滑出,但应用程序仍然卡住,就像某个控制器仍在前台一样。当我添加dismissViewControllerAnimated:
调用时,问题消失了,完成处理程序 (1) 被正确调用。
您是否也注意到了这种行为?难道我做错了什么?这是当前的 iOS 6,GitHub 上的示例代码。我已向 Apple (Radar #12642889) 报告了该问题,但还没有任何反应。