道歉,如果这个问题有点基础,但我花了几天时间试图了解这个问题的根本原因而没有任何成功。
我正在开发一个严重依赖UITableView
个对象的应用。我可以成功使用UITableViewController
对象并在表格中显示信息,但我需要能够在屏幕上显示多个来自多个来源的数据,UITableViewController
似乎太有限了。
我希望能够在故事板上放置多个UITableView
对象,然后创建管理表的自定义类文件。不幸的是,当我尝试这个时,XCODE不允许我选择这些自定义类来管理表。
虽然我在网上找到了一些可能的解决方法,但我想了解为什么选择一个新类来管理表格视图是不可能的。
[我想发布图片,但显然我不能发表声明......]
答案 0 :(得分:3)
这完全取决于你做了什么。但是,你应该采取不同的方法:
如果可以,请使用包含多个部分的单个表视图(带页眉/页脚)。
如果您不能这样做,请为您想要的每个信息部分创建单独的表视图控制器和表视图。然后,你的主要'视图控制器应充当父视图,并将所有其他表视图控制器添加为子视图(addChildViewController:
),并将其视图添加为子视图。这种方法将使您的代码保持隔离和组织,而不是试图让一个控制器管理许多不同的视图。
答案 1 :(得分:0)
.h
{
UITableView *objlefttableview;
UITableView *objrighttableview;
}
.m
viewdidload
{
if(!objlefttableview)
objlefttableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 87, 227, 681) style:UITableViewStylePlain];
if(!objrighttableview)
objrighttableview=[[UITableView alloc]initWithFrame:CGRectMake(227, 87, 263, 681) style:UITableViewStylePlain];
[objlefttableview registerNib:[UINib nibWithNibName:@"View" bundle:Nil] forCellReuseIdentifier:@"leftCell"];
[objrighttableview registerNib:[UINib nibWithNibName:@"ViewR" bundle:Nil] forCellReuseIdentifier:@"rightCell"];
}
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self->objlefttableview==tableView)
{
}
else
{
}
}
所以我刚刚创建的是我创建了两个tableview对象,然后我给它们两个不同的自定义单元格 如果你需要更多帮助,请问
答案 2 :(得分:0)
问题在于UITableViewController对象默认是UITableView委托及其数据源,即使它继承自UITableViewController,UIView也不行。我没有指定,似乎1和多个表都没有起作用,因为它们没有控制它们的类设置为委托和数据源。
通过在ViewController的.h文件中指定它也是UITableView的委托和数据源,如下所示(委托和数据源命令应该用三角括号括起来,但由于某些原因它们不会显示在这个上) :
@interface DHViewController:UIViewController [UITableViewDataSource,UITableViewDelegate]
并在.m文件的viewDidLoad方法中指定它是两个tableView的数据源和委托,如下所示:
self.tableAnswers.delegate =self;
self.tableAnswers.dataSource = self;
self.tableQuestions.delegate =self;
self.tableQuestions.dataSource = self;
并在.m文件中实现必要的方法:
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
...两个表都可以独立管理并显示在同一个屏幕上。
非常感谢大家的帮助!
仅供参考(我想我仍然会考虑@Wain的想法,即提供一个具有特定内容/行为的单个表格 - 它似乎更整洁)。
答案 3 :(得分:0)
1)为故事板添加UITableView。
2)设置委托和数据源。
3)为tableView&#39>创建Outlets(类中的属性)
然后你可以使用thouse表视图。例如,在其上放置标签,并在程序中动态更改文本。
干杯:)