1

ユーザーが次の[ログアウト] ボタンに[User logOut];触れたときにこのメソッドを実行したいと考えてい ます。UIAlertView

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Logged in!" message:@"Logged in to App!" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:@"Log me out", nil];
        [alert show];
        [alert release];

どうすればそれを行うことができますか?「OK」はキャンセルボタンで機能します。他のボタン/メソッドが機能する必要があります。

助けてくれてありがとう

4

4 に答える 4

6

次のようなことができます。

- (void)AlertConfirm
{
    UIAlertView *alert = [[UIAlertView alloc] init];
    [alert setTitle:@"Confirm"];
    [alert setMessage:@"Log out?"];
    [alert setDelegate:self];
    [alert addButtonWithTitle:@"Yes"];
    [alert addButtonWithTitle:@"No"];
    [alert show];
    [alert release];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
        // Yes, do something
    }
    else if (buttonIndex == 1)
    {
        // No
    }
}

がんばれ、ネイサン

于 2012-05-11T15:12:02.890 に答える
2

UIAlertView デリゲート メソッドを使用する必要があります。

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

自分自身を alertView のデリゲートとして設定してください。

于 2012-05-11T15:05:31.153 に答える
1

ビュー コントローラを次のように設定しdelegateますUIAlertView

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Logged in!" message:@"Logged in to App!" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:@"Log me out", nil];
        alert.delegate = self;
        [alert show];
        [alert release];

次に、デリゲート コールバックで処理します。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{
    if (buttonIndex == alertView.cancelButtonIndex) {
        // Cancelled
        return;
    }

    // Log them out
}

テストに注意してください(buttonIndex == alertView.cancelButtonIndex)。これは、ボタン インデックスの絶対値をチェックするよりも優れた形式です。

于 2012-05-11T15:16:21.747 に答える
1

アラート ビューのデリゲートを自己に設定し、.h に追加します

ボタンが押されると、次のデリゲート メソッドが呼び出されます。

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

次に、次のようにして、どのボタンが押されたかを確認できます。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if ((alertView == alert) && (buttonIndex == 0))
        NSLog(@"alert's \"Okay\" button was pressed");
    else 
        NSLog(@"alert's \"Log Out" button was pressed");
}
于 2012-05-11T15:09:51.743 に答える