1

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に送り返す簡単な方法はありますか?

助けてくれてありがとう!

4

1 に答える 1

0

これを行うにはもっと良い方法があると思われますが、文字列を渡す目的によっては、NSUserDefaults を使用する方法もあります。

于 2011-05-05T16:37:11.303 に答える