gpt4 book ai didi

ios - 用户在 iOS 中发布到 FB 后,试图关闭显示 SLComposeViewController 的 View Controller

转载 作者:行者123 更新时间:2023-11-28 19:53:54 25 4
gpt4 key购买 nike

我正在展示一个 SLComposeViewController 以在我的应用程序中发布到 Facebook。用户可以通过以下两种方式之一关闭此 View Controller :通过将他们的帖子发布到 Facebook,或通过按“取消”。当用户按下“取消”时,SLComposeViewController 被关闭,用户返回到它后面的呈现 View Controller 。

但是,我想做的是,如果用户按下“post”,那么我希望呈现的 View Controller 在 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 ,而不是在他们取消时。

最佳答案

您可以简单地关闭 completionHandler 的 SLComposeViewControllerResultDone 部分中的呈现 View Controller ,如下所示:

    dispatch_async(dispatch_get_main_queue(), ^{
[self dismissViewControllerAnimated:YES completion:nil];
});

如果您支持 iOS 6,那么您需要先关闭 SLComposeViewController

关于ios - 用户在 iOS 中发布到 FB 后,试图关闭显示 SLComposeViewController 的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27664399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com