在UITableView中追加以前的数据

时间:2012-11-05 05:08:48

标签: objective-c ios xcode uitableview

我正在将数据解析为表视图,但服务器页面中有大量的名称。

首先,我在服务器端的不同页面中写了所有服务器数据,然后在表视图下面放了一个“查看更多”按钮。当用户单击该页面时,页面编号将增加1,第二页面上的数据将显示在表格视图中。问题是我在表格视图中丢失了第一页的数据。当我点击“查看更多”时,如何将新数据附加到以前的数据?

这是viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];

    sharedClass=[SharedClass sharedInstance];
    [self.navigationController setNavigationBarHidden:YES];

    Noresult.hidden = YES;
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // NSString *userid = [defaults objectForKey:@"userid"];
    NSString *userid = @"3";

    NSString *search_key = @"";
    NSString *type=@"user";

    page = 1;

    ServerRequests *ser_req = [[ServerRequests alloc] init];
    ser_req.server_req_proces = self;
    NSString *postdata = [[NSString alloc] initWithFormat:@"{\"function\":\"search\",   \"parameters\": {\"user_id\": \"%@\",\"search_key\": \"%@\",\"type\": \"%@\",\"page\": \"%d\"},\"token\":\"\"}",userid,search_key,type,page];

    [ser_req sendServerRequests:postdata];

    NSLog(@"array=========>>%@",postdata);
    sharedClass.oprtn = @"load table";

}

这是viewMore按钮

中的代码
-(IBAction)Viewmore:(id)sender
{


    NSString *userid = @"3";

    NSString *search_key = searchBaar.text;
    NSString *type=@"user";

    page = page + 1 ;



    ServerRequests *ser_req = [[ServerRequests alloc] init];
    ser_req.server_req_proces = self;
    NSString *postdata = [[NSString alloc] initWithFormat:@"{\"function\":\"search\",  \"parameters\": {\"user_id\": \"%@\",\"search_key\": \"%@\",\"type\": \"%@\",\"page\": \"%d\"},\"token\":\"\"}",userid,search_key,type,page];

    [ser_req sendServerRequests:postdata];

    sharedClass.oprtn = @"load table";

}

1 个答案:

答案 0 :(得分:0)

您正在使用NSMutableArray来保存数据。 当您按下查看更多按钮时,可能存储如下数据:

yourDataArray = //getting data from server;

我建议不要删除重新分配相同的NSMutableArray

使用临时数组而是将临时数组中的新数据附加到dataArray,如:

NSMutableArray *tempArray = //getting data from server;

for(int loop = 0; loop < [tempArray count]; loop++)
{
   [yourDataArray addObject:[tempArray objectAtIndex:loop]];
}