今天在用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