iosobjective-cuitableviewipadxcode7.2

TableView reloadData doesn't update UI in iPad , but works in iPhone


I have a strange error . I am using UITableView which has to be reloaded when a row get selected . This works fine in iPhone simulator . While running in iPad , didSelectRowAtIndexPath is getting called but the UI isn't getting updated . I tried calling the method reloadData on main thread . It's still the same .

I have tried various solutions in stackoverflow . Nothing seemed to fix my issue .

UPDATE

When i select a cell , new cell will be added . So i need to reload my tableview to display the dynamic change . Posted my code below

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
NSUInteger count=indexPath.row+1;

NSMutableArray *insertIndexPaths = [NSMutableArray array];

[insertIndexPaths addObject:[NSIndexPath indexPathForRow:count inSection:indexPath.section]];

switch (indexPath.row) {
        case 0:
    {
    if ([ItemsInSection[indexPath.section] count]==1){
                [ItemsInSection[indexPath.section] addObject:obj2];

                [TabView beginUpdates];
                [TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];

                [TabView endUpdates];        
            }
            else {

                [ItemsInSection[indexPath.section] removeAllObjects];
                [ItemsInSection[indexPath.section] addObject:obj1];

                [self.TabView reloadData];

            }
        }
            break;

        case 1:

    {if ([ItemsInSection[indexPath.section] count]==2){
                [ItemsInSection[indexPath.section] addObject:obj3];

                [self.TabView beginUpdates];
                [TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
                [self.TabView endUpdates];

            }
            else
            {
                [ItemsInSection[indexPath.section] removeAllObjects];
                [ItemsInSection[indexPath.section] addObject:obj1];
                [ItemsInSection[indexPath.section] addObject:obj2];

                [self.TabView reloadData];
              }
        }
            break;

        case 2: {

            if ([ItemsInSection[indexPath.section] count]==3) {
                 [ItemsInSection[indexPath.section] addObject:obj4];
                [self.TabView beginUpdates];
                 [TabView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];
                [self.TabView endUpdates];

            }
            else
            {
                [ItemsInSection[indexPath.section] removeObject:obj4];
                [self.TabView beginUpdates];
                 [TabView deleteRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationLeft];

                [self.TabView endUpdates];

            }
          }
            break;

                  default:
            break;
    }

}

Solution

  • I have found the solution for this issue . The background color of UITableViewCell was set to clear colour and the background color of UIView on the UITableViewCell was also set to clear colour . Changing these settings displayed the insertion of rows in UITableView in iPad simulator .