Проблема UIActionSheet с FBConncet {iPhone SDK} - PullRequest
0 голосов
/ 04 февраля 2010

Я реализую FBConnect для моего приложения через UIActionSheet с 2 кнопками.

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

1 голос
/ 04 февраля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...