2

私はこの問題をほぼ一日中グーグルで調べていましたが、解決策に近づくことはできませんでした.. :)

WiFi経由でmbedに接続し、接続している場合はユーザーにダイアログを表示し、接続していない場合はユーザーに再試行の可能性を与えるiOSアプリに取り組んでいます。私の問題は、appdelegate.m に接続メソッドを実装したことです。ここからアラートを表示したいと思います。

アラート自体は正常に機能しますが、ボタンが押されたときの検出に問題があり、clickedButtonAtIndex が呼び出されていません。

次のように、appdelegate.h に UIAlertViewDelegate を追加しました。

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate, UIAlertViewDelegate> 

次のように、alertview でデリゲートを self に設定しました。

alert_NOT = [[UIAlertView alloc] initWithTitle:@"Not connected!" message:message_to_user delegate:self cancelButtonTitle:@"Try again" otherButtonTitles: nil];
    [alert_NOT show];
    [alert_NOT release]

clickedButtonAtIndex は次のようになります

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"test");

}

そのため、アラートビューでボタンが押されたときにログに「テスト」という単語が表示されるのを楽しみにしていますが、何も起こりません。

更新:「FirstViewController.m」に実装しようとしましたが、動作します:Sですが、可能であればappdelegate.mに入れたいと思います..

4

4 に答える 4

1
@interface urAppDelegate : NSObject <UIApplicationDelegate,UIAlertViewDelegate>

を合成した場合はalert_not、self で次のように使用します。

self.alert_NOT = [[UIAlertView alloc] initWithTitle:@"Not connected!" message:message_to_user delegate:self cancelButtonTitle:@"Try again" otherButtonTitles: nil];

[alert_NOT show];
[alert_NOT release];
于 2011-12-22T08:52:54.317 に答える
1

私は現在、同様の実装を検討しており、私が持っていたアイデアをあなたと共有したいと思います: おそらく、デリゲートの条件が満たされたときに起動する NSNotification を使用して、VC でリッスンし、適切に処理することができます。スタックの一番上にあるアラート ビュー。

于 2012-12-27T09:33:32.590 に答える
0

これには、alertViewCancel メソッドを使用する必要があります。

- (void)alertViewCancel:(UIAlertView *)alertView
{
    NSLog(@"text");
}
于 2011-12-22T10:07:59.773 に答える