我有一个父 UIViewController,从中我呈现一个嵌入 UINavigationController 的 UITableViewController,我必须从中选择一些行(在我的情况下为带有人名的行),将它们添加到 mutableArray 中,我必须将其发送回 UIViewController。
我尝试了一个正常的协议:
@class TableViewController
@protocol TableViewDelegate <NSObject>
-(void)sendFrom:(TableViewController *)controller theList:(NSMutableArray *)list;
@end
...
@proprety (nonatomic, strong) id<TableViewDelegate> delegate;
...
然后在 TableViewController.m ... -(IBAction)dissmisController:(id)sender { [self.delegate sendFrom:self theList:_theListOfPersons]; [自我dismissViewControllerAnimated:是完成:无];}
然后是 ViewController.h
#import "TableViewController.h"
然后我添加代表
<TableViewDelegate>
然后我实现协议的方法
-(void)sendFrom:(TableViewController *)controller theList:(NSMutableArray *)list
{
NSLog(@"the list of persons is %@", list);
}
运行应用程序之前的最后一件事是将委托设置为 segue [[segue destinationViewController] setDelegate:self];
问题是我的委托方法永远不会被调用。而且,如果我签入 TableViewController.m viewDidLoad,委托就像
NSLog(@"%@", self.delegate);
答案是:(空)
谁能解释一下?