1

次のようにView Controllerをプッシュしようとしています:

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"];
svcb.delegate = self;
[self.navigationController pushViewController:svcb animated:YES];

行を削除する svcb.delegate = self;と、正常にコンパイルされ、適切に動作します。ただし、追加しようとすると、コンパイルされず、エラーが発生します

Property 'delegate' not found on object of type 'SampleViewControllerB *'

これを修正する方法を知っている人はいますか?前もって感謝します!

4

4 に答える 4

2

これがあなたの問題です。delegateクラスで独自のプロパティを定義し、それを自分で呼び出す必要があります。デリゲートプロトコルも作成することを忘れないでください!

于 2012-06-27T14:14:36.100 に答える
1

SampleViewControllerBの.hでparentViewController変数を作成します。

ParentViewController *parentObject ;

そしてそれを同じようにプロパティにします

@property(nonatomic,retain) ParentViewController *parentObject ;

そして、SampleViewControllerBクラスの.mで合成します

@synthesize parentObject ;

ここで、コントローラーをプッシュしているコードを使用します

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"];
svcb.parentObject = self;
[self.navigationController pushViewController:svcb animated:YES];

これがあなたのお役に立てば幸いです

于 2012-06-27T14:13:35.050 に答える
1

UIViewControlerにはデリゲート プロパティがありません。デリゲートを追加する必要がある場合SampleViewControllerBは、明示的に定義する必要があります。

于 2012-06-27T14:09:28.193 に答える
0

Delegate プロパティの場合、SampleViewControllerB クラスのプロトコルにデリゲート メソッドを追加する必要があります。

于 2012-06-27T14:10:29.787 に答える