私はアプリケーションを開発しています。1つの要件があります。つまり、着信コールがある場合、対応するメソッドが呼び出されます。alertviewコードを記述します。これは完全に機能し、alertviewを表示します。
Alertviewには、承認と拒否の2つのボタンが含まれています。これらのボタンのいずれかをクリックすると、alertviewデリゲートメソッドは呼び出されません。
+ (void)incomingCallAlertView:(NSString *)string
{
UIAlertView *callAlertView=[[UIAlertView alloc] initWithTitle:string message:@"" delegate:self cancelButtonTitle:@"reject" otherButtonTitles:@"accept",nil];
[callAlertView show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"clickedButtonAtIndex");
if(buttonIndex==0)
{
NSLog(@"buttonindex 0");
}
else
{
NSLog(@"buttonindex 1");
}
}
+(void)incomingcall
メインスレッドを使用して別のメソッドからメソッドを呼び出しています。
- (void)showIncomingcalling
{
[CallingViewController performSelectorOnMainThread:@selector(incomingCallAlertView:) withObject:@"on_incoming_call" waitUntilDone:YES];
}
私はクラスでプロトコルを記述します。つまり<UIAlertViewDelegate>
、デリゲートメソッドが呼び出されないため、事前に問題を解決できます。