我想使用两个表格视图,例如...... ..
我使用的是popover控制器
第一个tableview位于弹出控制器中 在popover控制器我有两个按钮(添加注释按钮和剩余按钮) 当我点击剩余按钮时,我隐藏了第一个tableview并启用了第二个tableview
用于第二个tableview cellforrowatindexpath没有调用
仅针对它正在调用的第一个tableview,而不是调用第二个表视图
这里我的代码是......... ..
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView==self.remainderTableView)//second Tbleview {
static NSString *cellIdentifier=@"Celliden";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
cell.textLabel.text=@"hhh";
return cell;
}
else if (tableView==self.NotesandRemainderTable)//first Tableview {
static NSString *cellIdentifier = @"bookingCell";
CustomTableViewSwipeCell *cell = (CustomTableViewSwipeCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
NSString *note=[jsondata valueForKey:@"TeacherNotes"];
NSLog(@"teacher notes %@",note);
// if (cell==nil) {
// cell=[[CustomTableViewSwipeCell alloc]init];
// }
// Add utility buttons
NSMutableArray *rightUtilityButtons = [NSMutableArray new];
[rightUtilityButtons sw_addUtilityButtonWithColor:
[UIColor colorWithRed:1.0f green:0.231f blue:0.188 alpha:1.0f]
title:@"Delete"];
_SubjectLabel.text=AppDel.sub;
NSLog(@"the date %@",AppDel.date);
_DateLabel.text=_dateToDisplay;
if (indexPath.section==0)
{
if (indexPath.row==0)
{
cell.Noteslabel.text=note;
}
return cell;
}
if (indexPath.section==1){
cell.Noteslabel.text=[_notesArray objectAtIndex:indexPath.row];
//NSLog(@"notes index %@",[notesArray objectAtIndex:indexPath.row]);
cell.rightUtilityButtons = rightUtilityButtons;
cell.delegate=self;
return cell;
}
}
//cell.rightUtilityButtons = rightUtilityButtons;
return nil;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView==self.NotesandRemainderTable) {
if (section==0) {
return 1;
}
else if (section==1) {
if (leanerNots==nil || [leanerNots isEqual:[NSNull null]]) {
return 0;
}
else{
return [_notesArray count];
}
}
}else{
return 3;
}
return 0;
}
//这是我的剩余按钮代码......
-(IBAction)addRemainderAction:(id)sender{
self.lineLabel.hidden=NO;
self.remainderTableView.hidden=NO;
self.addButtonObj.hidden=NO;
//self.remainderTableView.frame=CGRectMake(0, 62, 300, 321);
//[self.view addSubview:self.remainderTableView];
self.NotesandRemainderTable.hidden=YES;
self.notesBtnObj.hidden=YES;
self.remainderBtnObj.hidden=YES;
_SubjectLabel.hidden=YES;
}
任何人都可以帮助解决这个问题......我是Xcode的新手
答案 0 :(得分:0)
您是否设置了第二个tableview的数据源和委托?
例如在viewDidLoad中:
self.remainderTableView.datasource = self;
self.remainderTableView.delegate = self;
您可能希望在显示之前重新加载您的tableviews。为此,请将以下代码用于第二个tableview
[self.remainderTableView reloadData];
答案 1 :(得分:0)
从这段代码来看,您是否已为delegate
个实例正确设置了dataSource
和UITableView
,这一点并不完全清楚。如果还没有,则永远不会调用这些委托方法。
无论如何,使用两个数据集而不是两个tableView可以更好地处理这种情况。以与现在相同的方式实施cellForRowAtIndexPath
,除了根据tableView
的值有条件地创建您的单元格,只需使用UIButton
的值。当UITableViews
和UITableViewDelegate
方法允许您轻松地从不同的数据集中获取时,两个UITableViewDataSource
似乎有点矫枉过正。