リクエストの前に VC で、プロパティ (および @synthesize) を宣言して、ネットワーク リクエストの結果を保持します。
@property (nonatomic, strong) NSData *responseData;
次に、リクエストをトリガーするイベントが何であれ、次のように開始します。
NSString *urlString = /* form the get request */
NSURL *url = [NSURL urlWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// consider doing some UI on this VC to indicate that you're working on a request
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (!error) {
self.responseData = data;
// hide the "busy" UI
// now go to the next VC with the response
[self performSegueWithIdentifier:@"ThridVCSegue" sender:self];
}
}];
次に、次のように応答データを 3 番目の VC に渡します。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ThridVCSegue"]) {
ThirdViewController *vc = (ThirdViewController *)[segue destinationViewController];
[vc dataFromHTTPRequest:self.responseData];
}
}
これは、ARC、ストーリーボードを使用し、そのセグエを定義することを前提としています。ThirdViewController には、http 応答データを受け入れるパブリック メソッドが必要です。