Objective c 目标C:如何在班级之间进行沟通?
经过一项研究,我发现了西格尔顿可能对我有所帮助,但我在理解它是如何工作的方面遇到了一些问题。 我需要两个类相互通信,这里是一个示例: 我有一张桌子,视野是迪纳米克的。 这是我在viewController.h文件中的代码:Objective c 目标C:如何在班级之间进行沟通?,objective-c,ios,oop,Objective C,Ios,Oop,经过一项研究,我发现了西格尔顿可能对我有所帮助,但我在理解它是如何工作的方面遇到了一些问题。 我需要两个类相互通信,这里是一个示例: 我有一张桌子,视野是迪纳米克的。 这是我在viewController.h文件中的代码: -(void)ottieniMarche{ responseSimulate = [[NSArray alloc]initWithObjects:@"pollo",@"cane",@"gatto",@"verme",@"gallo",@"topo",@"ca
-(void)ottieniMarche{
responseSimulate = [[NSArray alloc]initWithObjects:@"pollo",@"cane",@"gatto",@"verme",@"gallo",@"topo",@"canguro",@"elefante",@"giraffa" ,nil];
}
现在我必须在mainTableView.m上发送此信息,我实际使用的代码如下:
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
elementMainTableView = [[NSArray alloc]initWithObjects:@"aaa",@"bbb",@"ccc",@"ddd",@"eee",@"fff",@"ggg",@"hhh",@"iii" ,nil];
}
return self;
}
现在我必须用responseSimulate值更改elementMainTableView值。我的意思是,我的maintableView的内容与我的responseSimulate相同。如果我正确理解了您的问题,您希望根据模型更改刷新
UITableView的内容
UITableView
需要符合UITableView数据源
协议的类来提供其行和节数据。通常,这是一个UITableViewController
,但不一定是。UITableView
的数据源可能是您引用的其他类。在这种情况下,关键是要求重新加载数据,即更改数据时,[tableView reloadData]
在您的情况下,如果MainTableView
(我推断这实际上是一个UITableViewController
子类…)符合UITableViewDataSource
协议,那么您可以使用键值观察来解决问题,例如:(注意,本例假设您正在使用ARC。)
这假设您将elementMainTableView
作为MainTableView
上的属性公开
现在,在另一个类(?ViewController)中,您的方法:
-(void)ottieniMarche {
responseStimulate = [[NSArray alloc] initWithObjects:@"pollo",@"cane",@"gato",nil];
_mainTableViewController.elementMainTableView = responseStimulate;
}
为此,您需要使用ViewController
来保留对MainTableView
的引用,例如上面的\u mainTableViewController
-(void)ottieniMarche {
responseStimulate = [[NSArray alloc] initWithObjects:@"pollo",@"cane",@"gato",nil];
_mainTableViewController.elementMainTableView = responseStimulate;
}