私はCViewControllerでプロトコルを宣言しました。このプロトコルメソッドは、BViewControllerのために正常に動作していますが、ViewControllerでデリゲートメソッドを動作させる方法を理解していません。
View ControllerでCViewControllerのオブジェクトを作成し、そのデリゲートに対して自分自身を宣言しましたが、機能しませんが、以下は自分のコードです。私を助けてください。私がここで間違っているところ!すなわちBViewController
#import "BViewController.h"
#import "CViewController.h"
@interface BViewController()<testDelegates>
@end
@implementation BViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)bNextAction:(id)sender {
CViewController *cVC = [self.storyboard instantiateViewControllerWithIdentifier:@"CViewController"];
// cVC.mydelegate = self;
[self.navigationController pushViewController:cVC animated:YES];
}
-(void)TestMethod{
NSLog(@" Its Working If I uncomment to cVC.mydelegate = self");
}
マイルートビューコントローラ、すなわちのViewController
#import "ViewController.h"
#import "BViewController.h"
#import "CViewController.h"
@interface ViewController()<testDelegates>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
CViewController *cVC = [self.storyboard instantiateViewControllerWithIdentifier:@"CViewController"];
cVC.mydelegate = self;
}
- (IBAction)nextAction:(id)sender {
BViewController *bViewC = [self.storyboard instantiateViewControllerWithIdentifier:@"BViewController"];
[self.navigationController pushViewController:bViewC animated:YES];
}
-(void)TestMethod{
NSLog(@" Its NOT Working");
}
私の第二ビューコントローラ、と私はでプロトコルを宣言し、私の第三ビューコントローラ、。 hファイル、つまりCViewController
そして、.mファイル内は
#import "CViewController.h"
@interface CViewController()
@end
@implementation CViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)cNextAction:(id)sender {
[self.mydelegate TestMethod];
}
はい、あなたは、CViewControllerからViewControllerにいくつかのアクションを実行する必要があります。コードでは、この行の[delegate conformsToProtocol:testDelegates]、 "testDelegates"は赤いマークになり、Used Undeclared Identifierと表示されます。 : –
申し訳ありませんが、私は答えを修正しました – Sergey
パーフェクト、そのワーキングパーフェクト..ありがとう:) –