【发布时间】:2016-06-30 16:27:05
【问题描述】:
我在我的应用中使用以下代码进行 Twitter 分享:
SLComposeViewController *twitter = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitter setInitialText:@"some text"];
twitter.completionHandler = ^(SLComposeViewControllerResult result)
{
// do something...
[topViewController dismissViewControllerAnimated:YES completion:nil];
};
[topViewController presentViewController:twitter animated:YES completion:nil];
现在,如果没有设置 Twitter 帐户并且 Twitter 应用未安装,我会收到以下警报:
这正是它应该做的,按下“取消”会关闭警报视图和 Twitter 撰写视图。按“设置”也会关闭两个视图并打开设置。不错。
现在,如果没有设置 Twitter 帐户,但 Twitter 应用程序已安装,我会收到以下警报:
请注意,没有“取消”和“设置”按钮,只有“确定”按钮。如果按下,警报视图会消失,但 Twitter 撰写视图会保留在那里,“发布”按钮变灰。因此,用户只能再次按“取消”以关闭撰写视图并自己进入设置。不太好。
请注意,在展示 SLComposeViewController 之前是否检查服务可用性并没有什么区别:
[SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter];
您知道为什么会有这种行为差异吗?是否有办法获得相同的行为,无论是否安装了 Twitter 应用程序?
在 iOS 9.2.1、iPad Air(第二代)和 iPhone 6 Plus 上测试。
【问题讨论】:
-
我还向 Apple 发送了一个错误报告:openradar.appspot.com/25214135。
标签: ios objective-c twitter slcomposeviewcontroller