UITableView中的节数已更新,但不会更新tableview数据源数组

时间:2016-03-10 06:25:43

标签: ios uitableview

我无法更新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;


}

1 个答案:

答案 0 :(得分:1)

基本上你是用错误的方法编写代码,因为你需要根据不同的条件显示行,改变方法

  
      
  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  •   

  
      
  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  •