我正在SLComposeViewController
我的应用程序中展示要发布到 Facebook 的内容。用户可以通过以下两种方式之一关闭此视图控制器:将他们的帖子发布到 Facebook,或按“取消”。当用户按下“取消”时,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 时,我才需要解除呈现的视图控制器,而不是在他们取消时。