Я пытаюсь внедрить новую социальную структуру в 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];
}
}
И вот странное поведение при запуске вышеуказанного метода:
В симуляторе (версия 6.0 (358.4) я получаю диалоговое окно, информирующее меня о том, что я не настроил учетные записи FaceBook с помощью кнопок «Настройки» и «Отмена». Нажатие «Настройки» просто закрывает диалоговое окно. , но не приводит меня к панели настроек.
На моем 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])
на самом деле работать правильно (запуск автоматического диалогового окна и переход к настройкам), поэтому я просто прокомментировал это в своем коде.