0

我有一个我无法解决的问题。在我的登录页面上,我正在创建一个共享实例并加载它:

ViewController *vc = [ViewController sharedInstance];

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.1) {
    [self presentViewController:vc animated:YES completion:nil];
}else{
    [self presentModalViewController:vc animated:YES];
}

这是第一次很好地工作。在我的视图控制器上,我有一个如下所示的注销方法:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.1) {
    [self dismissViewControllerAnimated:NO completion:nil];       
}else{
    [self dismissModalViewControllerAnimated:NO];
}

它也很好用,但是在我注销并尝试再次登录后,它停在代码中间……没有错误,没有借口。

有人知道解决方案吗?

谢谢

编辑:方法sharedInstance

static ViewController *vcontroller; 
+ (ViewController *) sharedInstance { 
    if (!vcontroller) { 
        vcontroller = [[ViewController alloc] init]; 
    } return vcontroller; 
} 
4

1 回答 1

0

根据您的解释,我确实想要(应该)删除共享实例。因此,请确保您有一种方法可以在代码中将 cController 静态变量设置为 nil。我不认为调用 sharedInstance 和设置会起作用,因为看起来你正在使用单例,如果你有单例模式的正确实现,它将不起作用。您也可以根据您的要求清除此变量以登录

于 2013-01-16T14:45:30.860 回答