2010-02-02 153 views
0

我在我的应用程序中使用FBConnect。登录操作表按钮是标题“登录Facebook”和“登出Facebook”,但我想显示“登录Facebook”和“发布到Facebook”。目前,它看起来像这样...iPhone:是否可以隐藏和取消隐藏UIACtionSheet按钮?

alt text http://freezpic.com/pics/6944f45f17ba4bbb8220637d5a00a1c6.jpg

...但我希望它看起来像这样...

alt text 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]; 
} 

回答

0

最后我实现了! (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]; 
    } 

} 
2

当然,只是显示一个不同的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

对不起,我不完全明白! 你能告诉我的代码? 我实施UIActionSheet有了这个代码:: - (IBAction为)MySheet的工作:(ID)发送方{ \t UIActionSheet *菜单= [[UIActionSheet的alloc] initWithTitle:@ “脸谱” 委托:自cancelButtonTitle:@ “取消” destructiveButtonTitle:零 \t \t \t \t \t \t \t \t \t \t \t otherButtonTitles:@ “分享在脸谱”,@ “登录者”,@ “注销脸谱”,零]。 \t [menu showInView:self.view]; \t [menu release]; \t \t \t} – Momi 2010-02-02 12:37:17

+0

编辑您的问题以包含验证码。我看不懂:-) – 2010-02-02 13:57:11

+0

这个问题已编辑!:) – Momi 2010-02-02 15:32:15