我无法更新tableview数据源数组。
我想要这样的事情:如果用户通过注册登录,他将在tableView中查看13行。
如果他使用Facebook登录,他会看到10行,作为嘉宾,他会看到5行。
事情是tableView的行已成功更新,但不是不同索引路径下的tableview单元格的操作。
我正在做这样的事情:
- (NSInteger) numberOfSectionsInTableView : (UITableView *) tableView
{
// Return the number of sections.
if( [SharedGlobal SharedSingleton].userBool==TRUE)
{
return 5;
}
else if([[[[NSUserDefaults standardUserDefaults]objectForKey:@"profileArrayForGlobal"] valueForKey:@"UserType"] integerValue]==1)
{
return 13;
}
else
{
return 10;
}
}
现在为cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil)
{
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"Cell"];
}
if( [SharedGlobal SharedSingleton].userBool==TRUE){
// do something
else if([[[[NSUserDefaults standardUserDefaults]objectForKey:@"profileArrayForGlobal"] valueForKey:@"UserType"] integerValue]==1)
{
//do something
if ([self tableView:tableView canCollapseSection:indexPath.section])
{
if (!indexPath.row)
{
//do something
if ([expandedSections containsIndex:indexPath.section])
{
// do something
}
else
{
//do something
}
}
else
{
// all other rows
}
}
else
{
cell.accessoryView = nil;
cell.lblMenuName.text= [lableArray objectAtIndex:indexPath.section];
cell.imgMenu.image=[self crop:[UIImage imageNamed: [imageArray objectAtIndex:indexPath.section]]];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
}
}
else
{
cell.lblMenuName.text= [lableArrayOrg objectAtIndex:indexPath.section];
cell.imgMenu.image=[self crop:[UIImage imageNamed: [imageArrayOrg objectAtIndex:indexPath.section]]];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
}
return cell;
}
答案 0 :(得分:1)
基本上你是用错误的方法编写代码,因为你需要根据不同的条件显示行,改变方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
到
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section