2011-10-31 9 views
0

質問が整形式であるかわかりません。だから私は30秒間、アプリケーションの起動時に表示されているUialertviewを持っています。このuialertviewには、ユーザーがアラートをクリックして解放できるボタン「ok」があります。ユーザーがこのボタンを30秒間クリックしないと、アラートが解放されます。ここでは、コードがある .. ブール値を使用してアプリケーションの目的の状態を確認してください。

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" 
               message:@"Welcome!" 
               delegate:nil 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert setDelegate:self]; 
[alert show]; 

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*30.0); 
dispatch_after(delay, dispatch_get_main_queue(), ^{ 
[alert release]; 

} 

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 

} 

だから私は、ユーザーが[OK]をクリックするか、いないかどうかを確認するために、ブールと制御を実装する必要が

... uは私を助けることができますか?私は客観的なCで新しいです:)ありがとう!次のように

答えて

0

はあなたのアラートビューを表示: は

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" 
               message:@"Welcome!" 
               delegate:self 
             cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 
[alert setTag:1000]; 
[alert show]; 
isD = NO; 

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*5.0); 
dispatch_after(delay, dispatch_get_main_queue(), ^{ 

    if (!isD) { 
     [alert dismissWithClickedButtonIndex:0 animated:YES]; 
    } 
}); 
[alert release]; 

(.hファイルにクラスメンバーとして宣言)ISDは、BOOL値である仮定し、UIAlertViewDelegate方法に

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    if(alertView.tag == 1000) 
    { 
     isD = YES; 
    } 
} 
+0

ISD = YESを書きあり警告:セマンティック問題: 'BOOL'(別名 'signed char')(別名 'signed char')から 'BOOL *'(別名 'signed char *')に割り当てる互換性のない整数からポインタへの変換 – JackTurky

+0

BOOLはポインタではありません。どのようにヘッダファイルで宣言しましたか? BOOL * isD;またはBOOL isD。 2番目は正しいです。 – Ilanchezhian

+0

完璧:私はポインタとしてそれを宣言:) – JackTurky

関連する問題