2010-02-04 82 views
0

我實現FBConnect爲我的應用程序通過UIActionSheet 2buttons。UIActionSheet問題與FBConncet {iPhone SDK}

我的按鈕是「在Facebook上共享」和「從Facebook註銷」。所以我想當用戶點擊facebook上的分享按鈕FBLoginDialog顯示和用戶使用他的帳戶登錄Facebook時,然後顯示FBStreamDial出現,用戶在他的牆上分享一些東西。再也不會顯示FBLoginDialog。這意味着只有一次。並且當用戶註銷該方法時再次重複。 如何管理它?

如果我使用這種方法:2方法一起出現!

-(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; 


} 

}

回答

1

FBDialogshow方法是異步的,這意味着它返回它完成正在執行的任何(在這種情況下顯示的窗口)之前。

您需要實現用於響應Facebook對話框消息的委託方法。

在委託方法中,您可以概述應用程序的流程。

當前,您的代碼顯示的是登錄對話框窗口,該窗口會立即返回,然後繼續顯示另一個對話框。您應該僅在用戶登錄後才顯示第二個對話框,您可以使用FBSession委派方法來確定該對話框。