1

その UIPopoverController 内で UIPopoverController を呼び出しているコントローラーのメンバーにアクセスするにはどうすればよいですか?

UIPopoverController を呼び出すコントローラーは、ポップアップでデリゲートとして設定されます (これが役立つかどうかはわかりません)。

self.popover = [[UIPopoverController alloc] initWithContentViewController:theView];
[self.popover setDelegate: self];
4

2 に答える 2

1

他のView Controllerからメンバーにアクセスするのと同じ方法でそれらにアクセスします。親View Controllerへの参照が必要です。たとえば、ポップオーバー ビュー コントローラーに、親ビュー コントローラーを指すメンバー変数を設定できます。(このような参照を弱めたり、保持しないようにしたいでしょう。) このメンバーは、多くの場合、ポップオーバー ビュー コントローラーの "デリゲート" です。

theView提示する前にこれを設定するか、初期化子に渡すことができます。

parentViewController(よくわかりませんが、presentingViewControllerポップオーバー ビュー コントローラーを見てみることもできます。)

于 2012-08-25T01:00:55.843 に答える
0

最良の方法は、プロパティを使用することです

@property double ivar(私が覚えているように)このようにあなたはそれをそのように呼びます.

double test = self.popover.ivar;

または多分double test = [self.popover ivar]。どちらも機能するはずです。

これを行う@synthesize ivar;には、マスター コントローラーの .m ファイルで確認するか、getter としてメソッドを作成します。

メソッドについては、double の場合、

- (double)ivar
{
     return 5;
}

は一例です。インスタンス変数を返す場合は、そのコピーを返すことをお勧めします。例:

return [ivar2 copy];

メソッドの方法を使用している場合は、メソッドが .h ファイル内の変数と同じ名前であることを確認してください。

私が助けてくれることを願っています!

編集:その「二重」のものをUIViewに置き換えて、ただ言って

于 2012-08-25T01:13:00.407 に答える