如何在空数组的基础上更改UItableview中的NumberOfRowsInSection

时间:2014-12-22 11:19:03

标签: ios uitableview

我希望在BOOL的帮助下在空数组的基础上更改部分中的行数,如果它的YES然后行数会增加,否则它将保持不变。但现在我是设置Bool后,YES面临非常糟糕的情况No但总是YES。我曾尝试过代码,但没有任何反应BOOL始终为是。 这是我的示例代码

- (void)viewDidLoad {
    showLoadMoreButton=YES;

    }
-(void)LoadmoreMessagesOfInbox:(FBGenericWebHandler*)handler response:(NSDictionary*)response
{
    self.loadMore=nil;

    [MBProgressHUD hideHUDForView:self.view animated:YES];
    [self.imagesDictionary removeAllObjects];
    lastmessageId=[[[response objectForKey:@"messageResponse"] objectAtIndex:1] objectForKey:@"lastMessageId"];



    if (loadMore == nil || [loadMore count] == 0)
    {
      showLoadMoreButton = NO; // here i am setting no 

    }
    for(NSDictionary *tmp in loadMore)
    {
        NSMutableDictionary *messages=[[NSMutableDictionary alloc]init];
        [messages setValue:[tmp objectForKey:@"messageId"] forKey:@"messageId"];

    }

    for (int i=0; i<self.inboxmessagesarray.count; i++)
    {
        [self.lblArray addObject:[NSString stringWithFormat:@"cell Number %d",i]];
        [self.totalcheckmarkArray addObject:@"NO"]; // May b
    }
    }
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{
    if(showLoadMoreButton)
    {

    return self.inboxmessagesarray.count+1;// control always come here 
    }
    else
        return self.inboxmessagesarray.count;

}

2 个答案:

答案 0 :(得分:2)

更改showLoadMoreButton的值后,您应该编写[self.tableView reloadData];来重新加载tableview中的数据。

例如:

showLoadMoreButton = NO;

[tableView reloadData];

希望这有帮助!

杰森

修改

可能不需要showLoadMoreButton变量。在你的tableview中:numberOfRowsInSection:method ...

return (loadMore == nil || [loadMore count] == 0) ? self.inboxmessagesarray.count+1 : self.inboxmessagesarray.count;

答案 1 :(得分:1)

首先检查你的loadMore数组是否有数据

简单试试这个。为什么要使用不需要的代码

如果存在的数据执行其他部分

if (loadMore == nil || [loadMore count] == 0)
    {
      showLoadMoreButton = NO; 
    [yourTable reloadData];

    }


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

{
    if([loadMore Count]==0)
    {

    return self.inboxmessagesarray.count+1;// control always come here 
    }
    else
        return self.inboxmessagesarray.count;

}