【问题标题】:UIAlertView, once the user opens the app. Shown onceUIAlertView,一旦用户打开应用程序。显示一次
【发布时间】:2011-08-04 16:44:48
【问题描述】:

我希望在用户打开应用后显示UIAlertView。它会询问他们的电子邮件地址。但我希望它只显示一次。因此,当用户重新打开应用程序时,不应弹出 uialertview。 UIAlertView 将在其中包含 2 个按钮。 'Dismiss' & 'Yes' .. 关闭按钮将继续使用应用程序。但“是”会将他们带到另一个视角。

谢谢 :) 编辑:

- (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];

}
}

好的,这就是目前的代码,我不知道用户按下回车后电子邮件将如何发送。

【问题讨论】:

  • 为什么需要警报?如果您还没有电子邮件地址,只需将他们带到视图中输入电子邮件地址。如果他们不想进入该视图,请在该视图上提供一个取消按钮。
  • 因为警报“吸引”用户,它是直接的,用户不必搜索电子邮件视图

标签: iphone objective-c cocoa-touch


【解决方案1】:

您可以使用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];

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      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 实例中检索电子邮件地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        相关资源
        最近更新 更多