是否可以从 ConnectionDidFinishLoading
推送到新的 View Controller ?
我有以下内容,它执行 ConnectionDidFinishLoading
但不会推送到新的 View Controller 。
-(void)connectionWithURLString:(NSMutableArray *)urlString
{
NSDate *now = [NSDate date];
int userID = [[clientDataStruct.clientData objectForKey:@"number"] intValue];
NSDate *date = self.datePicker.date;
// NSLog(@"obj: %@", urlString);
NSString *extrString = [NSString stringWithFormat:@", customerdetails:{customer_id = %d, job_date = %@, date_created = %@}",userID,date, now];
NSString *post = [NSString stringWithFormat:@"json=quote:{%@%@}", urlString, extrString ];
NSLog(@"post: %@", post);
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *value = [defaults objectForKey:@"value"];
NSString *jsonUrl = [NSString stringWithFormat:@"xxx?task=add_quote&user_id=%@&customer_id=%@",value, [clientDataStruct.clientData valueForKey:@"number"]];
[request setURL:[NSURL URLWithString:jsonUrl]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
if (!connection)
NSLog(@"Connection failed!");
}
- (void)Success
{
UIStoryboard *subVc = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UserTableView *userTable = [subVc instantiateViewControllerWithIdentifier:@"UserTableView"];
userTable.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController pushViewController:userTable animated:YES];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"%@", error);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[self performSelectorOnMainThread:@selector(Success) withObject:Nil waitUntilDone:YES];
NSLog(@"connectionDidFinishLoading%@", connection);
}
一切正常,并返回我的数据,并且数据被添加到 SQL
中。我的 NSLog 显示 ConnectionDidFinishLoading
。但它不会推送到新的 View Controller 。
感谢您的帮助,我正在为这个问题摸不着头脑。
感谢 Fahim 的建议,让我可以进一步调试,导航 View 因返回的模型 Controller 而中断。将其更改为推送,一切正常
最佳答案
第 1 点
这不适用于您,因为您没有导航 Controller 。确保您有导航 Controller 。
第 2 点
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[self performSelectorOnMainThread:@selector(LoginSuccess) withObject:Nil waitUntilDone:YES];
NSLog(@"connectionDidFinishLoading%@", connection);
}
这是错误的。即使用户输入了错误的用户名或密码,您仍然允许用户登录。
检查您在connectionDidFinishLoading 中获得的响应,然后根据此响应进行转换。
例如如果你的后端有 PHP,你的代码将是
sql query here to add data
if (data added) {
echo "valid";
} else {
echo "invalid";
}
现在在connectionDidFinishLoading中检查此响应并基于此进行转换
关于ios - 从connectionDidFinishLoading推送到新的ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350518/