今天在用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
本文出自 “IOS” 博客,谢绝转载!
原文地址:http://20150101.blog.51cto.com/9157674/1662867