我有一个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];
}];
}
答案 0 :(得分:2)
你需要在你的推文控制器中有这一行,如果你想让segue返回到前一个控制器,你需要dismissViewControllerAnimated:completion
。
但是,由于您正在使用SLComposeViewcontroller并且您没有对其进行子类化,因此您必须通过设置其完成处理程序来使用处理程序:
[tweetSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
//actions!
}];