在我的应用程序中,当用户转到下一个视图控制器时,我正在显示带有取消按钮的指示器。在取消按钮上,单击 im 为一个变量设置值 -2,例如appDel.Val = -2;
在推送到下一个控制器之前,我会检查是否appDel.Val = -2;
返回。所以不需要进一步处理。
这适用于 iOS6 设备。当用户在 Delegate 方法中点击取消UIAlertView
警报时,立即单击调用并为 appDel.Val=-2 设置值。因此它将返回而无需任何进一步的过程。
位在 iOS7 中,它会产生问题,例如当用户在警报中点击取消时,在完成推送视图控制器的当前进程后调用 alertview 委托方法。因此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;
}
}
谢谢你的帮助。