今天在用delegate传值的时候遇到一个BUG
是想在A: UIViewController和B: UITableViewController 之间传值,在B中取到Cell的indexPath.row的值传到A中,在A中接收后,就是NUL,没有错误提示。最后发现协议的方法传的参数(NSIntager)不用加 * 号,这白痴的错误......
A.
//跳转到选择功能页面
-(void)addPhotoTap{
ChooseTableViewC *chooseTVC = [self.storyboard instantiateViewControllerWithIdentifier:@"chooseTVC"];
chooseTVC.delegate = self;
[self.navigationController pushViewController:chooseTVC animated:YES];
}
//协议的方法
-(void)chooseTableViewC:(ChooseTableViewC *)chooseTVC clickedIndexForRow:(NSInteger )cellNum{
self.message = cellNum;
NSLog(@"message-->%ld",(long)self.message);
//创建所选择的常用的功能
}
B.
#import <UIKit/UIKit.h>
@class ChooseTableViewC;
@protocol ChooseTableViewCDelegate <NSObject>
-(void)chooseTableViewC:(ChooseTableViewC *)chooseTVC clickedIndexForRow:(NSInteger )cellNum;
@end
@interface ChooseTableViewC : UITableViewController
@property (nonatomic,weak)id<ChooseTableViewCDelegate> delegate;
@end
转载于:https://blog.51cto.com/20150101/1662867