我是iOS开发的新手。我创建了两个UITableViewController
类。一个是Tasks
的列表,第二个是Notes
的列表。
现在问题是在许多屏幕上都需要这些UITableViewController
(在某些屏幕上同时存在)。我不想在每个屏幕上重写UITableView delegates and datasource
的所有代码。我想重用UITableViewController
和一些继承机制或模块系统。
因此,在我需要显示列表的每个UIViewController
上,我只需要在nib文件中添加UITableView
,设置其自定义类,它应该开始显示数据。
是否可以使用某种继承,组件或模块系统?
感谢任何帮助。
答案 0 :(得分:0)
创建UITableViewController的子类,添加所有必需的委托方法,并在.h文件中添加:
@property(nonatomic, strong) NSArray *myData;
所有方法都基于该数组设置,例如:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.myData;
}
当您想要使用它时,只需创建对象并传递数据:
MYTable *tableViewController = [[MYTable alloc] init];
tableViewController.myData = DATA YOU WANT TO DISPLAY;
它可以工作,但您必须将完全相同的数据结构传递给NSArray才能在cellForRowAtIndexPath:
方法中正确处理它。
答案 1 :(得分:-1)
嘿伙伴你需要维护两个数组并创建一个切换按钮ex。的a / b
如果a按下则获取一个数组的计数,如果按b则计算其他字典的数组。并通过维护BOOL变量来做到这一点。
离。 BOOL检查值;
-(UIButton *)a:(id)button
{
checkvalue = TRUE;
[tableview reloadData];
}
-(UIButton *)b:(id)button
{
checkvalue = FALSE;
[tableview reloadData];
}
现在将条件放在tableview中计算行数和cellforrowatindexpath方法。 喜欢, //对于numberOfRowsInTableview
if(checkvalue == TRUE)
{
return [arr1 count];
}
else
{
return [arr2 count];
}
和cellForRowAtIndexPath类似 谢谢你,祝你有个愉快的一天。