0

在我的应用程序中,当用户转到下一个视图控制器时,我正在显示带有取消按钮的指示器。在取消按钮上,单击 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;
}
}

谢谢你的帮助。

4

0 回答 0