共享后执行瞄准 - Objective-C(Xcode)

时间:2014-06-30 19:53:45

标签: ios objective-c cocoa-touch segue

我有一个Twitter共享视​​图控制器,在我的一个视图控制器前面打开。我像这样制作推特视图:

if ([shareOption isEqual: @"Tweet"]) {

        SLComposeViewController *tweetSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeTwitter];


        [tweetSheet setInitialText:combined];
        [tweetSheet addImage:capturedScreen];
        [self presentViewController:tweetSheet animated:YES completion:nil];

}

我有这行代码切换到我的下一个视图控制器:

[self performSegueWithIdentifier: @"goBack" sender: self];

用户完成推文后如何调用此行?如果用户决定取消他们的推文,我也希望执行此行。

修改

if ([shareOption isEqual: @"Tweet"]) {

        SLComposeViewController *tweetSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeTwitter];
        [tweetSheet setInitialText:combined];
        [tweetSheet addImage:capturedScreen];
        iJustShared = @"YES";
        [self presentViewController:tweetSheet animated:YES completion:nil];

    [tweetSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

        [self performSegueWithIdentifier: @"goBack" sender: self];

    }];

}

1 个答案:

答案 0 :(得分:2)

你需要在你的推文控制器中有这一行,如果你想让segue返回到前一个控制器,你需要dismissViewControllerAnimated:completion

但是,由于您正在使用SLComposeViewcontroller并且您没有对其进行子类化,因此您必须通过设置其完成处理程序来使用处理程序:

[tweetSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
    //actions!
}];

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/SLComposeViewController/completionHandler