50

UIView現在の親にアクセスしたい場合は、現在UIViewの親のオブジェクトを宣言し、親オブジェクトを現在のビューのオブジェクト プロパティに割り当ててアクセスします。UIViewUIViewUIView

これを取り除き、親ビューのメソッドまたはプロパティを直接呼び出す方法はありますか?

私も試し(parentView *) self.view.superviewましたが、助けにはなりませんでした。

このオブジェクトの関数を次のように呼び出しているときにエラーが発生します

[UIVIew unrecognized selector......
4

3 に答える 3

91

UIViewこれを(ではなく )から直接呼び出している場合は、の代わりにUIViewControllerする必要があります。self.superviewself.view.superview

于 2011-01-27T05:59:44.213 に答える
0

私が考えることができるのは、ビューコントローラーのビューに追加したビューからビューコントローラーのメソッドを呼び出したいということです。

ビュー コントローラーをビューのデリゲートに設定し、[delegate performSelector:] アプローチでビュー コントローラーのメソッドを呼び出すかの 2 つのオプションがあります。

もう 1 つのアプローチは、ビューのスーパービューにアクセスしてから、そのコントローラーを取得することです。それを直接行うことはできません.MVCの目的全体を無効にすることができれば.

しかし、それでも抜け道はあります。

UIView から UIViewController にアクセスしますか?

うまくいけば、これはあなたを助けます。

于 2013-06-27T10:10:44.767 に答える
0

@ Naveed: これは、親ビューであるか子ビューであるかに関係なく、任意のビューに使用できる共通のコードです。押したいボタン名と移動したいビュー名を変更するだけです。たとえば、戻るボタンを押してライブラリビューに移動したい場合は、次のコードを記述します-

-(IBAction)backButtonPressed:(id) sender
 {
        llibraryView *libraryview=[[libraryView alloc] initWithNibName:nil bundle:nil];
    libraryview.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:libraryview animated:YES]; 
    [libraryview release];
 }

あなたの問題が解決したかどうか教えてください。

于 2011-02-23T12:12:52.303 に答える