【发布时间】:2012-11-06 09:21:39
【问题描述】:
我有一些如下所示的社交分享代码:
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,sample code on GitHub。我已将问题报告给 Apple (Radar #12642889),目前还没有任何反应。
【问题讨论】:
-
我也看到了同样的行为。目前,我正在为 Twitter 手动关闭视图控制器,并让系统为 Facebook 执行此操作。
-
我也注意到了,你有没有回音?
-
我已向 Apple 提交了一份错误报告,并在 GitHub 上包含了示例项目的链接。大约五周后,Apple 现在才联系我,要求提供一个示例项目(叹气)。我将从 GitHub 下载示例项目,将其添加到问题中并等待。如果有任何变化,我会在这里发布详细信息。
-
我遇到的症状是twitter完成后,键盘没有自行关闭。像@lucius 提到的那样添加有条件的dismissViewController 来修复它。
-
@zoul,你有收到 Apple 的回复吗?
标签: ios slcomposeviewcontroller