iOS使用navigationController popToRootViewControllerAnimated

时间:2012-12-17 21:17:39

标签: objective-c ios uinavigationcontroller ios6

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

以下是我的申请背景:

viewcontroller A嵌套在导航控制器中。单击按钮会触发segue到viewcontroller B.在viewcontroller B的viewDidLoad方法中,创建了一个连接助手,以便在我们的服务器数据库上收集一些数据。在创建帮助程序时,检查设备是否已连接到Internet。如果不是那么“ popToRootViewControllerAnimated ”被调用以返回到viewcontroller 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的视图滑动并显示黑屏。

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

希望我把事情弄清楚。

由于

1 个答案:

答案 0 :(得分:1)

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