2011-08-04 11 views
0

ユーザーがアプリを開くと、UIAlertViewが表示されます。電子メールアドレスを要求します。しかし、私はそれが一度だけ見せたい。ユーザーがアプリを開くと、uialertviewがポップアップしてはいけません。 UIAlertViewには2つのボタンがあります。 'Dismiss' & 'はい' ..解任ボタンは、アプリケーションで続行されます。しかし、「はい」は彼らを別の視点に連れて行くでしょう。UIAlertView、ユーザーがアプリケーションを開くと1回表示

感謝:) 編集:

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

} 
} 

オーケー、これは現時点でのコードでは、イムは、電子メールは、ユーザーがEnterキーを押した後であることを送信することが起こっているかに立ち往生。

+0

なぜ警告が必要ですか?あなたがまだそれを持っていない場合は、単に電子メールアドレスを入力するためにビューにそれらを取る。入力したくない場合は、そのビューにキャンセルボタンを設けてください。 – progrmr

+0

アラートはユーザー、その真っ直ぐなフォワード、「従事する」ため、ユーザーは電子メールビューを検索する必要はありません – laaaa

答えて

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]; 
+0

トピックを見て、iveはそれを編集しましたthanks – laaaa

1

あなたは(あなたがそれにアプリが起動するだけの非常に最初の時間を求める場合、私は、あなたはすでにそれをやっていると思います)NSUserDefaultsにメールアドレスを保存することができ、アプリケーションが起動するたびに、電子メールアドレスがあるかどうかをチェックします(NSUserDefaults)。そうでない場合は、UIAlertViewを表示します。

+0

トピックを見て、 – laaaa

1

まず、自分がUIAlertViewの代理人になる必要があるため、ユーザーが[キャンセル]または[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インスタンスからの電子メールアドレスを取得することができます。

関連する問題