iPhone: возможно ли скрыть и показать кнопки UIACtionSheet? - PullRequest
0 голосов
/ 02 февраля 2010

Я использую FBConnect в моем приложении. Кнопки листа действий в журнале имеют заголовки «Войти в Facebook» и «Выход из Facebook», но я хочу отобразить «Войти в Facebook» и «Опубликовать в Facebook». В настоящее время это выглядит так ...

альтернативный текст http://freezpic.com/pics/6944f45f17ba4bbb8220637d5a00a1c6.jpg

... но я хочу, чтобы это выглядело так ...

альтернативный текст http://www.freezpic.com/pics/93f28f4f9103f0842c849d7daa644f81.jpg

... возможно установить в следующих методах:

- (void)session:(FBSession*)session didLogin:(FBUID)uid {

    //Show button log out

}

- (void)sessionDidLogout:(FBSession*)session {

    //show button log in
}

Edit01 - код оповещения из ответа на комментарий:

 -(IBAction)mySheet:(id)sender { 
    UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"FaceBook" 
                                                      delegate:self 
                                             cancelButtonTitle:@"Cancel" 
                                        destructiveButtonTitle:nil 
                                             otherButtonTitles:@"Share On the Facebook" , 
                                                                @"Log in Facebook" ,
                                                                @"LogOut Facebook" ,nil]; 
    [menu showInView:self.view]; 
    [menu release]; 
}

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

Конечно, просто покажите другой лист UIActionSheet только с этими двумя кнопками в зависимости от состояния соединения с Facebook.

А как же:

-(IBAction)mySheet:(id)sender
{
    if (alreadyLoggedInToFacebook) {
        UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"FaceBook"
            delegate:self  cancelButtonTitle:@"Cancel"
                destructiveButtonTitle:nil
                    otherButtonTitles: @"Share On the Facebook" ,  @"Log in Facebook" ,
                      @"LogOut Facebook" ,nil]; 
    } else {
        UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"FaceBook"
            delegate:self  cancelButtonTitle:@"Cancel"
                destructiveButtonTitle:nil
                    otherButtonTitles:  @"LogOut Facebook" ,nil]; 
    }
    [menu showInView:self.view]; 
    [menu release]; 
}
0 голосов
/ 04 февраля 2010

Наконец-то я это реализовал!(alreadyLoggedInToFacebook) должно быть (season.isConnect).все хорошо !но все еще проблема.после входа - выйдите из системы и поделитесь шоу, но это не сработало!это означает, что если пользователь нажмет кнопку «Выход», окно входа снова появится!Зачем ?я думаю, это из-за FBLoginButton, при удалении этого метода мой UIActionSheet не показывает

!вот мой код:

-(IBAction)mySheet:(id)sender
{
    if (session.isConnected) {
        UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"FaceBook"
                                                          delegate:self  cancelButtonTitle:@"Cancel"
                                            destructiveButtonTitle:nil
                                                 otherButtonTitles: @"Share On the Facebook" , @"Log out Facebook" ,nil]; 
        [menu showInView:self.view]; 
        [menu release]; 


    } else {



        UIActionSheet *menu2 = [[UIActionSheet alloc] initWithTitle:@"FaceBook"
                                                           delegate:self  cancelButtonTitle:@"Cancel"
                                             destructiveButtonTitle:nil
                                                  otherButtonTitles:  @"Log in Facebook" ,
                                nil]; 

        [menu2 showInView:self.view]; 
        [menu2 release]; 
    }
}


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

if (buttonIndex != [menu2 cancelButtonIndex]) 
    {

        FBLoginDialog* login = [[FBLoginDialog alloc] initWithSession:session];
        [login show];
        [login release];
    }

}

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



    if (buttonIndex != [menu cancelButtonIndex]) 
    {
        [session logout];
    }

}
...