UIAlertView,一旦用户打开应用程序。显示一次

时间:2011-08-04 16:44:48

标签: iphone objective-c cocoa-touch

一旦用户打开应用,我希望显示UIAlertView。它会询问他们的电子邮件地址。但我希望它只显示一次。因此,当用户重新打开应用程序时,uialertview不会弹出。 UIAlertView将包含2个按钮。 '解雇'& '是'..解雇按钮将继续使用该应用。但是,“是”将把他们带到另一种观点'。

谢谢:) 编辑:

- (void)viewDidLoad {
    [super viewDidLoad];

if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"alert"]]) {
    [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Enter your email" 
                                                     message:@"\n\n\n" 
                                                    delegate:nil 
                                           cancelButtonTitle:@"Cancel" 
                                           otherButtonTitles:@"Enter", nil];

    textField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 50.0, 260.0, 25.0)]; 
    [textField setBackgroundColor:[UIColor whiteColor]];
    [textField setPlaceholder:@"enter email here"];
    [prompt addSubview:textField];



    [prompt show];
    [prompt release];


    //[textField becomeFirstResponder];

}
}

好的,这是目前的代码,我坚持一旦用户按下回车就会发送电子邮件的方式。

3 个答案:

答案 0 :(得分:2)

您可以使用NSUserDefaults在会话之间保存boolean

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

// save 
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:true] forKey:@"hasRunBefore"];

// load 
[[NSUserDefaults standardUserDefaults] objectForKey:@"hasRunBefore"] boolValue];

答案 1 :(得分:1)

您可以将电子邮件地址存储在NSUserDefaults中(我猜你已经这样做了,如果你只是在你的应用程序第一次启动时才会这样做);每次应用程序启动时,您都会检查电子邮件地址是否存在(NSUserDefaults);如果没有,则显示UIAlertView。

答案 2 :(得分:1)

首先,需要让自己成为UIAlertView的委托,这样您就知道用户何时按下了取消或回车。所以这个:

UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Enter your email" 
                                                 message:@"\n\n\n" 
                                                delegate:self
                                       cancelButtonTitle:@"Cancel" 
                                       otherButtonTitles:@"Enter", nil];

委托回调就是这个方法:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

一旦调用,您就可以从您创建的textField实例中检索电子邮件地址并将其添加到警报视图中。