私のアプリケーションでは、ユーザーが次のView Controllerに移動している間、キャンセルボタンでインジケーターを表示しています。キャンセルボタンをクリックすると、1つの変数の値を-2に設定appDel.Val = -2;
し、次のコントローラーにプッシュする前に、その場合appDel.Val = -2;
に戻るかどうかを確認します。したがって、それ以上のプロセスは必要ありません。
これは iOS6 デバイスで正常に動作します。ユーザーが Alert クリックの Delegate メソッドでキャンセルをタップするUIAlertView
と、すぐに呼び出しが行われ、appDel.Val=-2 に値が設定されます。したがって、それ以上のプロセスなしで返されます。
ビット iOS7 では、ユーザーがアラートでキャンセルをタップすると、プッシュ ビュー コントローラーの現在のプロセスが完了した後にアラートビュー デリゲート メソッドが呼び出されるなどの問題が発生します。アラートデリゲートappDel.Val=-2
メソッドは iOS 6 のようにすぐには呼び出されないため、アラート クリック メソッドからコントローラーをプッシュした後に設定されます。
iOS 7でこれを修正するにはどうすればよいですか?
これが私のコードです。
-(void)goToNextViewController:(NSDictionary*)outputDictionary
{
myViewController *mtvc=[appDel.myDict valueForKey:[outputDictionary valueForKey:@"id"]];
if (mtvc) {
[appDel showindicator:@"Please Wait..."];
}else{
[appDel showindicator:@"Connecting..."];
}
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
self.rootDict = [[NSMutableDictionary alloc] initWithDictionary:outputDictionary];
appDel.activeId = [outputDictionary valueForKey:@"id"];
if(!mtvc)
{
myViewController *mtvc = [[myViewController alloc]initWithNibName:@"myViewController" bundle:nil];
appDel.tempViewController=mtvc;
appDel.tempViewController.isVeryFirst = YES;
[mtvc release];
}
else
{
appDel.tempViewController=mtvc;
appDel.tempViewController.isVeryFirst = NO;
@try {
[self.navigationController pushViewController: mtvc animated: YES];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
[appDel performDismiss];
return;
}
if (appDel.Val==-2)
{
[appDel.newConnections removeObjectForKey:appDel.activeId];
appDel.tempViewController.isNewConnection = NO;
appDel.Val = 0;
[appDel performDismiss];
return;
}
[appDel.newConnections setObject:appDel.tempViewController forKey:[outputDictionary valueForKey:@"id"]];
[self.navigationController pushViewController: appDel.tempViewController animated: YES];
[appDel performDismiss];
}
アラートクリック
- (void)alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(alert.tag==654)
{
self.Val = -2;
[baseAlert dismissWithClickedButtonIndex:0 animated:YES];
baseAlert=nil;
}
}
助けてくれてありがとう。