Main ViewControllerとPopoverView(iPad)内に表示されているTableViewControllerとの間で通信を行うことができないようです。
通常の方法で、ナビゲーションコントローラー内にテーブルビューを設定しています。
// create popover
if (self.popoverController == nil) {
filesViewController = [[[MyTableViewController alloc] initWithFiles:fileList] autorelease];
UINavigationController *navCtrl = [[[UINavigationController alloc] initWithRootViewController:filesViewController] autorelease];
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:navCtrl];
self.popoverController.delegate = self;
// resize popover
self.popoverController.popoverContentSize = CGSizeMake(320.0, 44 + [fileList count] * 44);
}
すべてが正常に機能しており、ファイル名の配列(fileList)をテーブルビューに渡します。テーブルビューは、listOfFilesという配列としてテーブルビューに保持されます。テーブルビューにファイル名が表示されます。ユーザーがファイル名を選択したら、そのファイル名をメインビューコントローラーに戻します。ただし、テーブルビューのdidSelectRowAtIndexPathメソッドからメインVCに戻る通信を取得できません。私はさまざまな方向に向かうあらゆる種類のアウトレットを試し、didSelectRowAtIndexPathで新しいオブジェクトを作成して、テーブルビューからのファイル名を処理しようとしました。ファイル名を新しいオブジェクトに渡すことはできますが、それをメインVCに送信しようとすると、再びnullになります。そのポップオーバーがアクティブな間にメインVCに送信するものはすべてnullとして表示されます。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
NSLog(@"%@", handler.addressForImageFile);
self.popoverController = nil;
[self.popoverController release];
}
メインVCがテーブルビューからnullオブジェクト以外を取得しない理由はありますか?私は何日も多くの異なることを試みてきました。ポップオーバーがどのように機能するかについての私の知識には、いくつかの根本的なギャップがあるように感じます。確かに、テーブルビューから選択されたときに、文字列をメインVCに送り返す簡単な方法はありますか?
助けてくれてありがとう!