現在のView Controllerを閉じた後、以前のView Controllerにデータを渡すデリゲートを作成しました。
これは私がデリゲートを設定する方法です
PaymentViewController.m
-(IBAction)techProcessAction:(id)sender
{
TechProcessPaymentVC *techVC = [[TechProcessPaymentVC alloc]init];
[techVC setTechDelegate:self];
NSLog(@"DELEGATE == %@",techVC.techDelegate);
[self performSegueWithIdentifier:@"techProcess" sender:nil];
}
デリゲートが設定されていることがわかります
Snap2Door[1765:1c703] DELEGATE == <PaymentDetailViewController: 0x9d3a360>
しかし、私がそれをチェックインするとTechProcessPaymentVC
、viewDidLoad
DELEGATE == (null)
これが、 にあるコールバック メソッドが呼び出されない理由だと思いますPaymentViewController.m
。
これは私がデリゲートを定義した方法ですTechProcessPaymentVC.h
@protocol techProcessDelegate <NSObject>
-(void) techProcessViewControllerDismissed:(NSString *)paymentStatus;
@end
@interface TechProcessPaymentVC : UIViewController<UIWebViewDelegate>
{
id techDelegate;
}
@property (nonatomic, assign) id<techProcessDelegate> techDelegate;
これが、存在するメソッドを呼び出そうとする方法ですPaymentViewController.m
if ([[substrings objectAtIndex:0] isEqualToString:@"failure"]) {
[self.techDelegate techProcessViewControllerDismissed:@"failure"];
[self dismissViewControllerAnimated:YES completion:nil];
}