0

我在我的应用程序中看到以下错误。当我在回调方法中加载新的 SubView 时会发生这种情况。以下是完整的详细信息。

在我的应用程序中,当应用程序启动时,我有 RootViewController,它添加了一个名为“AuthCheck”的子视图。在其中,我执行身份验证检查,向用户显示正在发生的事情的详细信息。在 AuthCheckController 中,我有一个回调方法来处理异步身份验证过程,如下所示。

   - (void)shellAuthRequired: (ServiceResponse *)response {

    [super shellAuthRequired:response];

    if (response.hasError) {

        [self showTryAgainAlert: response.errorText];
        return;
    }

    // TODO: go to main screen from here.
    IntroViewViewController *intview = [[IntroViewViewController alloc]initWithNibName:@"IntroViewViewController" bundle:nil];

    //[self.navigationController pushViewController:intview animated:YES];
    [self.view addSubview:intview.view];
}

如您所见,在此方法中,我将用户转发到一个新屏幕,在该屏幕上显示必要的身份验证相关详细信息,并且该屏幕将有一个继续按钮。当用户单击“继续”时,我会加载一个名为“WebViewController”的新子视图。下面的代码

       -(IBAction)btnContinueToClicked:(id)sender
{
    WebViewController *wview = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
    [self.view addSubview:wview.view]
}

当我添加要转发到的新子视图时,出现异常“[IntroViewViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0xd062f50”。

是什么导致了这个错误?

谢谢

维什

4

1 回答 1

0

您没有保留对 intview 对象的引用。我假设您使用的是 ARC,这意味着您从中获取视图的控制器将在您的方法结束后立即消失。试着让它成为一个强大的属性。

于 2012-07-25T13:47:43.563 回答