我正在尝试在 iOS6 中实现新的社交框架,并让它正常工作,除了两个奇怪的问题。如果我启用了我感兴趣的服务(例如……FaceBook),那么它就可以正常工作。但是,如果从设置面板(假设是 Facebook,为了保持一致)中删除了帐户,那么我会在模拟器和设备中看到不同且令人沮丧的行为。
这是我的视图控制器中的相关代码:
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
}
这是触发上述方法时的奇怪行为:
In 模拟器(版本 6.0 (358.4)我收到对话框,通知我尚未使用“设置”和“取消”按钮设置任何 Facebook 帐户。点击“设置”只会关闭对话框,但不会进入设置面板。
On my iPhone 4s 运行 6.01,点击触发该方法的按钮不会产生任何结果。换句话说,我没有收到任何对话框通知我必须设置 Facebook 帐户。
在此先感谢您的帮助。
好的...这是修复方法:
这是我的新实现,基于 user1734802 的有用评论。
//Method for FaceBook
- (IBAction)doFacebook:(id)sender{
// Create the view controller defined in the .h file
fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// make the default string
NSString *FBString= [NSString
stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
[fb setInitialText:FBString];
// show the controller
[self presentViewController:fb animated:YES completion:nil];
}
在某个时刻我期望
[SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
实际工作正常(触发自动对话框,并带您进入设置),所以我实际上只是在我的代码中注释掉它。