-3
-(void)otherGames
{
    UIAlertView *alertMsg = [[UIAlertView alloc]
    initWithTitle:@"This gGame was Developed By:"
    message:@"Burhan uddin Raizada"
    delegate:nil
    cancelButtonTitle:@"Dismiss"
    otherButtonTitles: @"@twitter" , nil];
    [alertMsg show];

}

-(void)alertMsg:(UIAlertView *)alertMsg clickedButtonAtIndex:(NSInteger)buttonIn… {

    if (buttonIndex == 1) {
        NSString *containingURL = [[NSString alloc] initWithFormat:@"http://www.twitter.com/…
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString: containingURL]];
    }
}

最初のアラートメッセージは問題なく動作しています。しかし、新しい「@twitter」ボタンにいいねを追加すると、機能しません。それ以外の場合は、すべて正常に動作しています。なぜそうならないのか疑問に思っていますが、助けが必要です。

4

2 に答える 2

-1

仮定して

- (void)alertMsg:(UIAlertView *)alertMsg clickedButtonAtIndex:(NSInteger)buttonIn…

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

デリゲートをに設定し、デリゲートselfプロトコルをヘッダーに追加する必要があります。

@interface yourView : UIViewController <UIAlertViewDelegate>

編集:@holexによると、alertView:willDismissWithButtonIndex:代わりに使用 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

于 2012-08-07T13:58:49.680 に答える
-2

アップデート

この回答はUIAlertView、iOS8 で廃止されたため、時代遅れになっています。

詳細についてUIAlertControllerは、Apple の Dev Docs を参照してください。


最初:

クラスを委譲していません。delegate:nilの委譲されたクラスがないことを示していますUIAlertView。これに従ってメソッドを修正する必要があります。

-(void)otherGames
{
    UIAlertView *alertMsg = [[UIAlertView alloc]
    initWithTitle:@"This gGame was Developed By:"
    message:@"Burhan uddin Raizada"
    // delegate:nil
    delegate:self // don't forget to implement the UIAlertViewDelegate protocol in your class header
    cancelButtonTitle:@"Dismiss"
    otherButtonTitles: @"@twitter" , nil];
    [alertMsg show];

}

2番目:

コールバック メソッドの正しい名前は次のとおりです。-alertView:didDismissWithButtonIndex:

//-(void)alertMsg:(UIAlertView *)alertMsg clickedButtonAtIndex:(NSInteger)buttonIn… { // WRONG, where have you got this silly idea...?
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1) {
        NSString *containingURL = [[NSString alloc] initWithFormat:@"http://www.twitter.com/…
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString: containingURL]];
    }
}

これで、コード フラグメントが間違っている理由がわかりました。

于 2012-08-08T08:03:58.670 に答える