2010-02-04 3 views
0

J'implémente FBConnect pour mon application via UIActionSheet avec 2buttons. Mes boutons sont "Partager sur Facebook" et "Déconnectez-vous de facebook". donc je veux quand l'utilisateur clique sur partager sur le bouton facebook FBLoginDialog montre et l'utilisateur se connecter à facebook avec son compte, puis afficher FBStreamDial apparaît et l'utilisateur de partager quelque chose sur son mur. et ne plus jamais afficher FBLoginDialog. cela signifie juste une fois. et quand l'utilisateur va se déconnecter de cette méthode, répétez à nouveau. Comment peut le gérer?UIActionSheet problème avec FBConncet {iPhone SDK}

si j'utilise cette méthode: 2 méthodes apparaissent ensemble!

-(void)actionSheet:(UIActionSheet *)menu didDismissWithButtonIndex:(NSInteger)buttonIndex { 

switch (buttonIndex) { 
    case 0: 

    ///SHOW LOGIN WINDOW 
    NSLog(@"asdasda"); 

     FBLoginDialog* dialog = [[[FBLoginDialog alloc] initWithSession:session] autorelease]; 
     [dialog show]; 


///SHOW FBStreamDialog 

     FBStreamDialog* dialog2 = [[[FBStreamDialog alloc] init] autorelease]; 
     dialog2.delegate = self; 

     dialog2.userMessagePrompt = @"Share Ghazals on your wall"; 
     dialog2.attachment = @"{\"name\":\"Hafez Application for iPhone\"," 
     "\"href\":\"http://itunes.apple.com/us/app/divan-of-hafez/id340865571?mt=8?tab=iphone\"," 
     "\"media\":[{\"type\":\"image\"," 
     "\"src\":\"http://momeks.com/images/fb.png\"," 
     "\"href\":\"http://developers.facebook.com/connect.php?tab=iphone/\"}]," 
     "\"properties\":{\"another link\":{\"text\":\"Hafez App HomePage\",\"href\":\"http://www.momeks.com/hafez\"}}}"; 
     //replace this with a friends UID 
     //dialog2.targetId = @"999999"; 
     [dialog2 show]; 


     break; 

    case 2: 

     [session logout]; 

     break; 


} 

}

Répondre

1

La méthode de showFBDialog est asynchrone, ce qui signifie qu'il retourne avant de terminer ce qu'il fait (dans ce cas, l'affichage d'une fenêtre).

Vous devez implémenter les méthodes déléguées pour répondre aux messages de la boîte de dialogue Facebook.

Dans les méthodes de délégué, vous pouvez décrire le flux de votre application.

Actuellement, votre code affiche la boîte de dialogue de connexion, qui revient instantanément, puis continue pour afficher une autre boîte de dialogue. Vous ne devez afficher la deuxième boîte de dialogue qu'après que l'utilisateur s'est connecté, que vous pouvez déterminer à l'aide des méthodes de délégué FBSession.

Questions connexes