认为没有执行ios

时间:2012-03-21 19:28:53

标签: iphone ios ipad ios5

我有一个iOS应用程序,允许用户连接到我们的服务器并执行一些任务。它工作得很好,直到我决定抛出错误并使其返回到前一个视图控制器。我创建了一个带有标识符" segShowError"的segue。应该被执行并将用户发送回父屏幕。目前segue是一个模态,从第一个控制器到第二个控制器。奇怪的部分是我在使用push segue之前遇到了同样的困难而我通过使用Modal来修复它。这是"应该"的代码。正在执行segue。

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(error != nil)
{
    NSLog(@"Error was %@",error);
    return;
}
else if([data length] <= 0)
{
    NSLog(@"No data received, going back");
    [self performSegueWithIdentifier:@"segShowError" sender:self];
}

然后我有一个prepareForSegue方法,它将确定要发送回父级的错误消息,但现在只记录一条消息。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Preparing for segue");
}

我的输出

  

2012-03-21 13:14:39.148 SSPColorImprov [17401:f803]没有收到任何数据,返回

     

2012-03-21 13:14:39.149 SSPColorImprov [17401:f803]准备赛格

我认为这两条消息表明正在执行segue,但我可能错了。

没有记录错误,项目中没有警告,也没有抛出异常。可能导致问题的任何想法?

1 个答案:

答案 0 :(得分:3)

要关闭以模态方式显示的视图,您需要通过调用将其关闭 - dismissViewControllerAnimated:completion:而不是使用segues。 e.g。

// used to be dismissModalViewControllerAnimated: but deprecated in iOS 5
[self dismissViewControllerAnimated:YES completion:nil];