Objective c 使用导航控制器PoptorootViewController的iOS已激活
当我尝试使用Objective c 使用导航控制器PoptorootViewController的iOS已激活,objective-c,ios,uinavigationcontroller,ios6,Objective C,Ios,Uinavigationcontroller,Ios6,当我尝试使用popToRootViewControllerAnimated方法时,我的屏幕变黑。 我想我真的回到了预期的视图,因为如果我旋转我的设备以横向观察,视图会正确显示 以下是我的应用程序的上下文: viewcontroller A嵌套在导航控制器中。单击按钮会触发到viewcontroller B的序列。在viewcontroller B的viewDidLoad方法中,会创建一个连接帮助器,以收集服务器数据库上的一些数据。创建帮助程序时,帮助程序正在检查设备是否连接到internet。如
popToRootViewControllerAnimated
方法时,我的屏幕变黑。
我想我真的回到了预期的视图,因为如果我旋转我的设备以横向观察,视图会正确显示
以下是我的应用程序的上下文:
viewcontroller A嵌套在导航控制器中。单击按钮会触发到viewcontroller B的序列。在viewcontroller B的viewDidLoad方法中,会创建一个连接帮助器,以收集服务器数据库上的一些数据。创建帮助程序时,帮助程序正在检查设备是否连接到internet。如果不是,则调用“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"];
}
+(AFHTTPClient*)getClient{
如果(!客户端){
[自创客户];
}
if(client.networkReachabilityStatus)正如我在评论中提到的,在ViewDidAppease方法中弹出到根控制器似乎可以做到这一点。多亏了这个线程()我认为我正在寻找解决方案。如果我在视图中弹出根控制器,一切正常。我认为这确实是一个动画问题。解决方案不错。你可以接受自己的答案(我认为几天后),你可能应该这样做。