Dire che vuoi fare qualcosa una volta che l'utente ha terminato. cosa fai?Perché SLComposeViewController non ha delegato?
Non ha un delegato. Cosa fare una volta che il controller di una vista attuale è stato rimosso?
Dire che vuoi fare qualcosa una volta che l'utente ha terminato. cosa fai?Perché SLComposeViewController non ha delegato?
Non ha un delegato. Cosa fare una volta che il controller di una vista attuale è stato rimosso?
Nella documentazione di Apple, SLComposeViewController dispone di una proprietà di gestore di completamento anziché di un delegato. Hai solo bisogno di impostare quella proprietà usando il metodo setCompletionHandler. Quindi si utilizza la costante SLComposeViewControllerResult per recuperare se il post è stato pubblicato o annullato e agire di conseguenza.
-(void) shareToFacebook {
//1. Set link and image
NSString *appLink = @"https://itunes.apple.com/app/id989793966";
UIImage *twitterImage = [UIImage imageNamed:@"TF_400x400.png"];
//2. Check if we can share
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
//3. Compose the share view controller
SLComposeViewController *FBViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[FBViewController addURL:[NSURL URLWithString:appLink]];
[FBViewController addImage:twitterImage];
//4 Set completion handler and define actions to take
[FBViewController setCompletionHandler:^(SLComposeViewControllerResult result)
{
if (result == SLComposeViewControllerResultCancelled) {
[self addEmptyScreenButtonTargets];
} else if (result == SLComposeViewControllerResultDone) {
//Unlock words; show thank you screen
[NewCardManager unlockWordsForPackage:4];
[self openFBThankYouScreen];
}
}];
//5. Call to modally present the share controller
[self presentViewController:FBViewController animated:YES completion:nil];
}
}
Questo è ciò che il gestore di completamento è per. –
Argh mi è mancato. Ora lo usano invece di delegare. –