viewWillDisappear の中で、ナビゲーションコントローラーの管理下に自分自身が含まれているかチェックし、含まれていなければ戻るボタンがタップされたと判断できた。
- (void)viewWillDisappear:(BOOL)animated { if ([self.navigationController.viewControllers indexOfObject:self] == NSNotFound) { // 戻るボタンがタップされたとき通信をキャンセルする MyHTTPClient *client = [MyHTTPClient sharedClient]; [client.operationQueue cancelAllOperations]; } [super viewWillDisappear:animated]; }
通信中に戻るボタンをタップされたとき、通信をキャンセルしないとエラーが発生してしまう。しょっちゅう使いそうなのでブログにメモ、っと。