2010-02-04 4 views
0

Я реализую FBConnect для своего приложения через UIActionSheet с 2 кнопками.Проблема с UIActionSheet с FBConncet {iPhone SDK}

Мои кнопки «Поделиться на Facebook» и «Выйти из фейсбука». поэтому я хочу, когда пользователь нажимает на share на 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

show Метод FBDialog «s является асинхронным, то есть он возвращает до завершения все, что он делает (в данном случае отображения окна).

Вам необходимо реализовать методы делегатов для ответа на диалоговые сообщения в facebook.

В методах делегатов вы можете указать поток вашего приложения.

В настоящее время открывается диалоговое окно с кодом входа в систему, которое возвращается мгновенно, а затем продолжается, чтобы отобразить другое диалоговое окно. Вы должны показывать только второе диалоговое окно после входа пользователя в систему, которое вы можете определить с помощью методов делегатов FBSession.

Смежные вопросы