跟踪单击哪个UIAlert按钮以更改UILabel

时间:2014-08-18 00:41:04

标签: ios objective-c uialertview

我是一个完全的初学者,并希望学习如何开始编码来构建我自己的应用程序。 我一直在搞乱经典的“Hello World”设计,并试图根据我过去一周收集到的有限知识来改进它,但我已经陷入困境,希望有人可以帮助我!

到目前为止,我有一个UITextField供用户输入他们的名字,一个标签显示他们的名字,一个按钮来更新显示。为了更好地理解UIAlertViews,如果输入的名称是Chris(或chris),则还包括一个Alert,如果输入的名称不是Chris,则还包含另一个警报。到目前为止,这一切都正常运作。

我想跟踪我在不正确的名称UIAlertView上按下了什么按钮,然后更新我的UILabel,如果他们点击“我想要被称为克里斯”按钮,则说“Chris”。我之前从教程中构建了另一个类似于此的应用程序,我已经复制了代码,我认为它应该起到相同的作用,但它似乎无法工作。

到目前为止,这是我的.m文件

#import "Solo1ViewController.h"

@interface Solo1ViewController ()

@end

@implementation Solo1ViewController

@synthesize setMessage;
@synthesize userName;

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *buttonTitle=([alertView buttonTitleAtIndex:buttonIndex]);
    if ([buttonTitle isEqualToString:@"I Want To Be Called Chris!"])
    {setMessage.text=@"Chris";}
}

-(IBAction)showMessage:(id)sender
{
    setMessage.text=userName.text;

    if ([userName.text isEqual:@"Chris"] || [userName.text isEqual:@"chris"])
        {
        UIAlertView *correctName;
        correctName = [[UIAlertView alloc]initWithTitle:@":)" message:@"Great Name!" delegate:nil cancelButtonTitle:@"Bye Fellow Chris" otherButtonTitles:nil, nil];
        [correctName show];
        }
    else
        {
            UIAlertView *incorrectName;
            incorrectName=[[UIAlertView alloc] initWithTitle:@":(" message:@"Chris is a Better Name" delegate:nil cancelButtonTitle:@"No, Thanks" otherButtonTitles:@"I Want To Be Called Chris!", nil];
            [incorrectName show];
        }
}

-(IBAction)removeKeyboard:(id)sender{
    [userName resignFirstResponder];
}

对我而言,这似乎应该可行,但我想我可能会错过一些明显的东西,或者我完全错了。

1 个答案:

答案 0 :(得分:1)

确保将提醒视图的委托设置为self!现在,您将委托设置为nil

示例:

incorrectName=[[UIAlertView alloc] initWithTitle:@":(" message:@"Chris is a Better Name" delegate:self cancelButtonTitle:@"No, Thanks" otherButtonTitles:@"I Want To Be Called Chris!", nil];