0

当我尝试使用popToRootViewControllerAnimated方法时,我的屏幕变黑了。我想我真的回到了预期的视图,因为如果我将设备旋转到横向,视图就会正确显示。

这是我的应用程序的上下文:

视图控制器 A 嵌套在导航控制器中。单击一个按钮会触发到 viewcontroller B 的 segue。在 viewcontroller B 的 viewDidLoad 方法中,会创建一个连接助手,以便在我们的服务器数据库上收集一些数据。在创建时,助手正在检查设备是否连接到互联网。如果不是,则调用“ popToRootViewControllerAnimated ”返回视图控制器 A。

这是助手的代码:

 +(AFHTTPClient*) getClient {
    if (!client) {
        [self createClient];
    }

    if (client.networkReachabilityStatus <AFNetworkReachabilityStatusReachableViaWWAN) {

        [currentController.navigationController popToRootViewControllerAnimated:YES];
        //[[[UIAlertView alloc] initWithTitle:@"Connection Problem" message:@"You don't seem to be connected to internet. Please enable WI-Fi or 3G then try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil] show];
           client = nil;
    }
    return client;
}

+(void) createClient{
    NSURL* baseUrl = [NSURL URLWithString:[[@"http://" stringByAppendingString:[ApplicationTask GetApiUrl]] stringByAppendingString:@"/"]];
    client = [AFHTTPClient clientWithBaseURL:baseUrl];
    client.parameterEncoding = AFJSONParameterEncoding;
    [client registerHTTPOperationClass:[AFJSONRequestOperation class]];
    [client setDefaultHeader:@"Accept" value:@"application/json"];
    [client setDefaultHeader:@"Content-Type" value:@"application/json"];
}

一旦调用了“popToRootViewControllerAnimated”方法,我就可以看到控制器 A 的视图正在滑动并出现黑屏。

正如我之前提到的,感觉就像我被带回了视图控制器 A(将设备从纵向旋转到横向显示视图),但视图看起来像是在屏幕框架之外。

希望我把一切都说清楚了。

谢谢

4

1 回答 1

1

正如我在评论中提到的,在 viewDidAppear 方法中弹出到根控制器似乎可以解决问题。

于 2012-12-18T16:39:04.023 回答