在一段时间间隔后,将当前视图控制器Dissmiss返回到MainView控制器IOS 7
您好,在我的应用程序中,我正在将图像从我的设备上传到服务器,一切正常,但现在我遇到了一些问题。上传图像后,必须自动返回主视图控制器。它不起作用,请告诉我怎么做 上传编码在一段时间间隔后,将当前视图控制器Dissmiss返回到MainView控制器IOS 7,ios,iphone,objective-c,uiviewcontroller,Ios,Iphone,Objective C,Uiviewcontroller,您好,在我的应用程序中,我正在将图像从我的设备上传到服务器,一切正常,但现在我遇到了一些问题。上传图像后,必须自动返回主视图控制器。它不起作用,请告诉我怎么做 上传编码 NSString *urlString = @"url"; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]init]autorelease]; [request setURL:[NSURL URLWithString:urlStr
NSString *urlString = @"url";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]init]autorelease];
[request setURL:[NSURL URLWithString:urlString]] ;
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary]dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\".jpg\"\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary]dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@data",returnString);
**[self performSelector:@selector(dissMissViewController) withObject:self afterDelay:2.0f];**
取消编码
- (void)dissMissViewController
{
[self.navigationController popViewControllerAnimated:YES];
[self dismissViewControllerAnimated:YES completion:nil];
}
上传后,我想回到我的主视图控制器,请告诉我这是正确的方法。是否有其他方法可以做到这一点
谢谢。首先,您必须知道图像上载是否成功,在成功时,您需要关闭并弹出到主viewcontroller,如下所示:-
-(void)dissMissViewController
{
[self dismissViewControllerAnimated:YES completion:^{
[self.navigationController popViewControllerAnimated:YES];}];
}
您还可以弹出特定的视图控制器,如:-
for (UIViewController *controller in [self.navigationController viewControllers])
{
if ([controller isKindOfClass:[yourviewcontroller class]])
{
[self.navigationController popToViewController:controller animated:YES];
break;
}
}
[self.navigationController popToRootViewControllerAnimated:YES]
您还可以使用下面这行代码弹出一个rootviewcontroller:-
for (UIViewController *controller in [self.navigationController viewControllers])
{
if ([controller isKindOfClass:[yourviewcontroller class]])
{
[self.navigationController popToViewController:controller animated:YES];
break;
}
}
[self.navigationController popToRootViewControllerAnimated:YES]
注意:在DismissViewcontroller的完成块中使用此pop代码首先您应该使用异步方法,因为当前您正在主线程中执行此操作 使用连接的委托方法将数据发送到服务器, 并使用连接的委托方法
connectiondFinishLoading
获取已成功上载图像的通知
或者试试这个
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
[self dismissViewControllerAnimated:YES completion:^{
[self.navigationController popViewControllerAnimated:YES];}];
}
请告诉我如何回到我的主要观点controller@Nintin我在我的dismissview控制器中使用了[self.navigationController popToRootViewControllerAnimated:YES]它不工作我不知道y@Nitin您正在使用故事板吗?请尝试
popToRootViewController
方法