2

IPhone アプリケーションに がありUIViewControllerます。一部のアニメーションでは、rootview のようなビューを作成し、その中にすべての要素を追加しました。ボタンをクリックすると、その rootview が削除され、別のビュー コントローラー ビューが追加されました。ビューをロードしました。新しいView Controllerで関数を実行したいのですが、そのためには、最初のView Controllerを2番目のView Controllerのデリゲートとして設定する必要がありますか?誰か助けてくれますか?

4

2 に答える 2

2

secondVCで、次のように定義します。

@protocol secondVCDelegate

@interface secondVC : UIViewController
    @property (nonatomic, assign) id<secondVCDelegate> delegate;
@end


@optional
-(void)someDelegateMethod:(secondVC*)viewController;

@end

secondVCのインスタンスを作成するときに、secondVCのデリゲートプロパティを自分自身に割り当てる必要があります。このようなもの:

// in firstVC
secondVC vc = [[secondVC alloc]...];
vc.delegate = self;
[navcontroller pushVC:vc];

ラインvc.delegate = self;はトリックを行います。

それが役に立てば幸い...

于 2012-07-16T10:51:27.077 に答える
0

どのコントローラーからどのコントローラーのメソッドを呼び出したいのか、入力からわからない場合は?

2 つのシナリオ:

A. 最初のビュー コントローラーで、2 番目のビュー コントローラーのメソッドを呼び出したい場合は、次のようにします。

[instantOfSecondViewController methodInSecondVC];

B. 2 番目のビュー コントローラーで、最初のビュー コントローラーのメソッドを呼び出します。この場合、デリゲート パターンを使用する必要があります。

このSOに両方の例を投稿しました。

于 2012-07-16T10:44:25.693 に答える