У меня есть код совместного доступа, который выглядит следующим образом:
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), пока не было никакой реакции.