Iphone 数据源项和TTTableViewController之间的三个20通信

Iphone 数据源项和TTTableViewController之间的三个20通信,iphone,ios,three20,Iphone,Ios,Three20,我正在开发一个应用程序,我决定使用三个20+TTTableViewController进行页面设置 因此,我有我的ViewController: @interface MyViewController : TTTableViewController 初始化我的数据源: -(void) createModel { self.dataSource = [[[MyDataSource alloc] init] autorelease]; } 然后,我的数据源初始化不同类型的控件(例如,一

我正在开发一个应用程序,我决定使用三个20+TTTableViewController进行页面设置

因此,我有我的ViewController:

@interface MyViewController : TTTableViewController 
初始化我的数据源:

-(void) createModel {
    self.dataSource = [[[MyDataSource alloc] init] autorelease];
}
然后,我的数据源初始化不同类型的控件(例如,一些three20标准控件,一些自定义类)

UISwitch* switchy = [[[UISwitch alloc] init] autorelease];
TTTableControlItem* switchItem = [TTTableControlItem itemWithCaption:@"UISwitch" control:switchy];
self.dataSource = [TTListDataSource dataSourceWithObjects:switchItem,...,...,nil]
现在有几件事我还不清楚

1-如何从viewcontroller访问数据?(即:读取开关的值)。。现在我用的是

bool ron = ((SwitchTableItemCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]]).switchField.isOn;
那件看起来糟透了

2-如何将viewcontroller设置为项目的代理(即:我希望将MyViewController设置为所有文本字段的代理)

3-添加/删除字段的最佳方式是什么。现在我只是从头开始重新分配数据源,但看起来有点难看


谢谢

对于三个20的TTableviewcontroller的基本设置

使用此链接

1-如何从viewcontroller访问数据?(即:读取开关的值)。。现在我用的是

您应该直接访问数据源:

self.dataSource.items
这是一个
NSMutableArray

2-如何将viewcontroller设置为项目的代理(即:我希望将MyViewController设置为所有文本字段的代理)

这取决于你想做什么。我在代码中看到的唯一一项是
ui开关
,它没有
委托
;但如果该项目有一个,我会:

 MYItem* switchy = [[[UISwitch alloc] init] autorelease];
 switchy.delegate = self;
3-添加/删除字段的最佳方式是什么。现在我只是从头开始重新分配数据源,但看起来有点难看


由于
self.dataSource.items
是一个NSMutableArray,因此您可以从中删除项,然后进行添加

该教程是我第一次阅读的教程之一,但没有真正解释我的任何问题。试试这个,谢谢,我不确定什么时候使用这些项目。只是一个关于委托的问题,您正在将数据源设置为委托。。这是个好习惯吗?如果希望MyViewController作为委托而不是数据源,该怎么办?再次感谢:
switchy.delegate=self
,我不知道self是什么(这是你的代码!),但我假设它是一个控制器;如果您有一个既是数据源又是委托的控制器,那么没有问题;如果控制器不是数据源,那么我会将
委托
设置为控制器,将
数据源
设置为数据源……对不起,请重新阅读原始问题,不清楚。self是指实现TTListDataSource的控制器。因此,是的,我认为最好的办法是将其作为代表使用。对我来说,最明显的代理是代理的viewcontroller,但也许我想得太多了。谢谢