我有一些社交分享代码,看起来像这样:
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),但还没有反应。