如何使用xcode在Alert视图上添加一个额外的按钮?

时间:2014-04-18 12:11:35

标签: ios objective-c cocoa-touch

额外信息:我一定错了,我希望用户点击按钮并重定向到Facebook!

我需要在下面的代码中添加一个名为“facebook”的访问facebook按钮作为膨胀!现在我只有一个确定按钮。

如果可能的话,你可以帮我理解,我将如何检索用户信息 - 例如,我会要求他们在文本字段中添加电子邮件,当他们按下确定时,我将在哪里存储电子邮件并获取它,这是如何工作的,我需要阅读哪些内容才能找到?

3 个答案:

答案 0 :(得分:3)

尝试在otherButtonTitles中添加按钮

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Refresh" 
                                                message:@"Are you want to Refresh Data" 
                                               delegate:self 
                                      cancelButtonTitle:@"Cancel" 
                                      otherButtonTitles:@"Button1",@"Button2",@"Button3",
                      nil];

答案 1 :(得分:1)

正如另一张海报所说,您可以通过在initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:方法的otherButtonTitles参数中提供按钮标题来添加其他按钮。

您可以将警报设置为具有输入字段,方法是将上述方法返回的按钮的alertViewStyle属性设置为UIAlertViewStylePlainTextInput

您需要传入self(视图控制器)作为委托参数。

然后你需要实现方法alertView:didDismissWithButtonIndex:

在该方法中,您将获得用户选择的按钮索引。您可以使用textFieldAtIndex:方法获取指向文本字段的指针,并获取用户输入的文本。

答案 2 :(得分:1)

根据Duncan的回答,您可以使用委托并获取点击的按钮。在特定按钮的点击上,您可以使用以下代码重定向到Facebook页面。

UIAlertView *info = [[UIAlertView alloc]initWithTitle:@"Yup" message:@"You've won! Like Us on Facebook too" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Facebook", nil];
info.tag = 10;
[info show];

因此,当用户按下Facebook按钮时,将调用委托方法alertView:clickedButtonAtIndex,以便检查 alert.tag ,然后检查是否点按了facebook按钮,然后显示另一个警告。

您的代理方法应该是

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (alertView.tag == 10)
    {
        switch (buttonIndex) {
        case 0:
            NSLog(@"Cancel");
            break;
        case 1:
            NSLog(@"Facebook");
            [self showAlertForRedirect];
            break;
        default:
            break;
        }
    }
    else if (alertView.tag == 20)
    {
        switch (buttonIndex) {
        case 0:
            NSLog(@"Cancel");
            break;
        case 1:
            NSLog(@"OK");
            [self RedirectNow];
            break;
        default:
            break;
        }
    }
}
-(void)showAlertForRedirect
{
    UIAlertView *info2 = [[UIAlertView alloc]initWithTitle:@"Note" message:@"Would you like to redirect on facebook?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
    info2.tag = 20;
    [info2 show];
}
-(void)RedirectNow
{
    NSURL *fanPageURL = [NSURL URLWithString:@"fb://profile/yourid"];
    if (![[UIApplication sharedApplication] openURL: fanPageURL])
    {
        NSURL *webURL = [NSURL URLWithString:@"https://www.facebook.com/yourpagename"];
        [[UIApplication sharedApplication] openURL: webURL];
    }
}