AddBillViewController.h:
@protocol AddBillDelegate <NSObject>
- (void)addBillViewControllerDidAddOneBill;
@end
@interface AddBillViewController : UIViewController
@property (retain, nonatomic)id <AddBillDelegate> delegate;
@end
AddBillViewController.m:
- (IBAction)AddBill:(id)sender {
[self.delegate addBillViewControllerDidAddOneBill];
[self dismissViewControllerAnimated:YES completion:nil];
}
HomeViewController.m:
@interface HomeViewController () <AddBillDelegate>
@property (strong, nonatomic)AddBillViewController *abVC;
@end
@implementation HomeViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.abVC = [[AddBillViewController alloc] init];
self.abVC.delegate = self;
}
- (void)addBillViewControllerDidAddOneBill {
NSLog(@"Added a bill.");
}
@end
正如您所看到的,AddBillViewController中有一个按钮,当按下按钮时,将调用addBill
方法,然后调用HomeViewController中的委托方法addBillViewControllerDidAddOneBill
,但事实上,它没有按&#39;吨
答案 0 :(得分:0)
我认为你没有在这一行中获得参考
self.abVC = [[AddBillViewController alloc] init];
如果您正在执行segue,例如AddBillViewController是您的下一个控制器,请在performSegue:function
中设置委托像
AddBillViewController *vc = [segue destinationViewController];
[vc setDelegate:self];