我有一个表格视图,我正在用dataDource
切换UIButtons
(如标签)。
- (IBAction)dataToggler:(id)sender {
int buttonTag = ((UIButton*)sender).tag;
if(_firstTab.selected && buttonTag != 1){
AppDelegate *myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
myAppDelegate.isFeatured = TRUE;
[myAppDelegate loadEvents];
numberOfSections = 1;
_firstTab.selected = NO;
_secondTab.selected = YES;
} else if(_secondTab.selected && buttonTag != 2){
AppDelegate *myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
myAppDelegate.isFeatured = FALSE;
[myAppDelegate loadEvents];
numberOfSections = 2;
_firstTab.selected = YES;
_secondTab.selected = NO;
}
[tableView reloadData];
}
每次当我点击其中一个按钮时,我的xml会被解析并添加到单独的数组中;数组包含一系列事件(例如,第一部分包含现在的事件,第二部分包含其余事件)。
我遇到的问题是当我选择第二个按钮时我有两个部分,但有时我的第一个部分是空的,所以我不想显示那个部分,如果它是空的;请快速查看我的代码文件......
现在,如果我的第二个标签(按钮)被选中,我会得到一张空桌......
我的代码文件是:myViewController和myAppDelegate
答案 0 :(得分:1)
在tableView数据源中,实现此方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if ( [self tableView:tableView numberOfRowsInSection:section] > 0 ) {
// INSERT YOUR HEADER STRING "times" array here.
return [NSString stringWithFormat:@"section %d",section];
} else {
return nil;
}
}
答案 1 :(得分:1)
如果是我,我可能会将我的数据存储在2d数组中,然后您就可以拥有以下内容,
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { //返回部分的数量。 return [self.2darray count]; }
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [[self.2darray objectAtIndex:section] count]; }
这将为您提供正确数量的节和行。
,而不是试图弄乱你在这些方法中有多少部分(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if([[self.2darray objectAtIndex:section] count]< = 0) 返回0;
返回44; }
这是相当干净整洁的,无论您创建的行数和部分数如何,都可以正常工作。希望这会有所帮助。