SLComposeViewController
アプリで Facebook に投稿することを提案しています。ユーザーは、Facebook に投稿するか、「キャンセル」を押すという 2 つの方法のいずれかで、このビュー コントローラーを閉じることができます。ユーザーが「キャンセル」を押すSLComposeViewController
と、 は閉じられ、ユーザーはその背後にある表示中のビュー コントローラーに戻ります。
ただし、私がやりたいことは、ユーザーが「投稿」を押した場合に、表示中のビュー コントローラーが閉じられた後SLComposeViewController
(つまり、このSLComposeViewControllerResultDone
場合) も閉じられるようにすることです。私の問題は、これを行う方法がわからないことです。これには完了ハンドラーを使用することに気づきましたが、ここで立ち往生しています。これが私が持っているコードですSLComposeViewController
:
SLComposeViewController *fbSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[fbSheet setInitialText:initialText];
[fbSheet addImage:myImage];
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result) {
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
NSLog(@"Cancelled.....");
}
break;
case SLComposeViewControllerResultDone:
{
NSLog(@"Posted....");
}
break;
}
};
[fbSheet setCompletionHandler:completionHandler];
[self presentViewController:fbSheet animated:YES completion:nil];
上記の完了ハンドラーを使用すると、NSLog
期待どおりの出力が得られます。でも、
誰かが私が間違っていることを見ることができますか? 私が指摘したように、ユーザーが Facebook に「投稿」した場合にのみ、表示中の View Controller を閉じる必要がありますが、キャンセルした場合はそうではありません。