如何使用按钮使用两个表格视图
Posted
技术标签:
【中文标题】如何使用按钮使用两个表格视图【英文标题】:how to use two tableviews using button 【发布时间】:2014-10-29 13:38:04 【问题描述】:我想使用两个表格视图,例如……..
我正在使用弹出框控制器
第一个 tableview 在 popover 控制器中 在那个弹出控制器中我有两个按钮(添加注释按钮和剩余按钮) 当我单击剩余按钮时,我将隐藏第一个 tableview 并启用第二个 tableview
第二个tableview cellforrowatindexpath 的ut 没有调用
只调用第一个表视图,不调用第二个表视图
我的代码是……..
- (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 的新手
【问题讨论】:
【参考方案1】:您是否设置了第二个 tableview 的数据源和委托?
例如在 viewDidLoad 中:
self.remainderTableView.datasource = self;
self.remainderTableView.delegate = self;
并且您可能希望在显示之前重新加载您的表格视图。为此,请为您的第二个 tableview 使用以下代码
[self.remainderTableView reloadData];
【讨论】:
你也添加了reloadData方法吗?在 addRemainderAction【参考方案2】:从这段代码中不能完全清楚您是否为UITableView
实例正确设置了delegate
和dataSource
。如果你没有,那么这些委托方法将永远不会被调用。
无论如何,使用两个数据集而不是两个 tableView 可能会更好地处理这种情况。以与现在相同的方式实现cellForRowAtIndexPath
,除了不是根据tableView
的值有条件地创建单元格,而是使用UIButton
的值。当 UITableViewDelegate
和 UITableViewDataSource
方法允许您轻松地从不同的数据集中获取数据时,两个 UITableViews
在这种情况下似乎有点过头了。
【讨论】:
以上是关于如何使用按钮使用两个表格视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用按钮从集合视图(网格视图)切换到表格视图(列表视图)?