2014-06-11 4 views
1

У меня есть UITableview в контроллере вида. При щелчке по строке все в порядке. Я запускаю запрос NSURLConnection для получения информации. Однако здесь начинается моя проблема. Если я использую perfromsegue, то segue возникает до того, как ответ будет возвращен. Если я использую instantiateviewcontroller, я получаю сообщение об ошибке «Завершение приложения из-за неотображаемого исключения» NSInvalidArgumentException », причина:« Приложение попыталось представить новый контроллер модального представления на цель ».« Мой вопрос в том, как я могу перейти к новому контроллеру представления после Я получил ответ?UITableview didselecetrowatindex performsegue после URL Ответ

Вот конец блока кода, где я называю segue.

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]  completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ 
    NSLog(@"THIS IS THE NEW RESPONSE %@",response); 
    messageBody= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSLog(@"THIS IS responseData = %@", messageBody); 
    [self performSegueWithIdentifier:@"ViewMessage" sender:nil]; 
}]; 

Я бы загрузил изображение раскадровки, но у меня недостаточно очков репутации для этого.

+0

Я обнаружил, что моя раскадровка имеет значение null, когда я пытаюсь выполнить segue или создать новый вид. Это вызывает мою проблему. Теперь мне просто нужно знать, как сделать так, чтобы моя раскадровка не была нулевой. – user3728381

ответ

0

Вы соединяете сегмент с контроллером и вызываете performSegueWithIdentifier:sender: в методе делегата connectionDidFinishLoading:.

+0

Я сделал это, и я все еще получил ошибку. Однако это привело меня к выяснению, что моя раскадровка является нулевой. Я попытался установить его с помощью self.storyboard = [UIStoryboard storyboardWithName: @ "Main" bundle: nil]; но это дало мне ошибку «присваивание только для чтения». Если я смогу правильно настроить раскадровку, я думаю, что буду заниматься бизнесом. Спасибо за помощь. – user3728381

+0

@ user3728381, я полагаю, что у контроллера, у которого есть вид таблицы, находится тот же раскадровки, что и тот, к которому вы переходите. В этом случае вы можете получить раскадровку с self.storyboard. – rdelmar

+0

Я уже пробовал использовать: self.storyboard = [UIStoryboard storyboardWithName: @ "Main" bundle: nil]; и это не сработало. Мой проект имеет навигационный контроллер в начале, экран входа в систему, а затем контроллер представления с табличным представлением внутри него. Так что на моем втором экране я столкнулся с проблемой. – user3728381

Смежные вопросы