1

Facebook メッセージを送信するための SLComposeViewController を提示しています。提示と投稿は正常に機能し、完了ブロックが呼び出されています (すべてのログがあります)。

問題は、投稿が完了したときに、現在のビュー コントローラー (ストーリーボードのモーダル セグエを介して表示される) も閉じたいことです。

この VC を[self dismissViewControllerAnimated:YES completion:nil];ブロック内で閉じることができません。

- (void)postToFacebook
{
    NSLog(@"Posting to Facebook ...");
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
        NSLog(@"Facebook is available ...");
        SLComposeViewController *fbSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeFacebook];
        [fbSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
            // [self endQuiz];
            [self dismissViewControllerAnimated:YES completion:nil];
            NSLog(@"FB post complete");
        }];
        [fbSheet setInitialText:[NSString stringWithFormat:@"I just scored a %i on this game", self.totalPoints]];
        [self presentViewController:fbSheet animated:YES completion:^{
            NSLog(@"Completed showing FB sheet");
        }];
    } else {
        NSLog(@"Facebook not available");
        [self endQuiz];
    }
}

おそらくselfがブロック内の間違ったコントローラーを参照していると考えて、ブロックセーフなselfのバリエーションを試しました。そこにも運はありません。

4

0 に答える 0