iOS UITableView ничего не показывает при загрузке данных из Dropbox - PullRequest
1 голос
/ 11 февраля 2012

У меня есть UITableView, который должен показывать содержимое папки из выпадающего списка при загрузке.Я знаю, как получить данные из Dropbox с помощью операторов журнала.Я перезагружаю данные в таблице после того, как она получает данные из выпадающего списка, но все равно ничего не показывает.Пожалуйста, помогите

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    uploadFileButton = [[UIBarButtonItem alloc] initWithTitle:@"Upload" style:UIBarButtonItemStyleBordered target:self action:@selector(uploadFile:)];

    self.navigationItem.rightBarButtonItem = self.editButtonItem;
    self.navigationItem.leftBarButtonItem = uploadFileButton;
    self.title = @"DropBox";

    [[self restClient] loadMetadata:@"/"];
}

- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata {

    for (DBMetadata *file in metadata.contents) {
        NSLog(@"\t%@", file.filename);
        [dropBoxArray addObject:file.filename];
    }
    NSLog(@"%@", dropBoxArray);

    [self.tableView reloadData];

    }
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [dropBoxArray objectAtIndex:indexPath.row];
    NSLog(@"%@", cell.textLabel.text);

    return cell;
    }

Ответы [ 2 ]

1 голос
/ 26 февраля 2013

Вам просто нужно показать ProcessIndicator во время выполнения запроса

- (void)viewDidLoad
{
    [super viewDidLoad];
    uploadFileButton = [[UIBarButtonItem alloc] initWithTitle:@"Upload" style:UIBarButtonItemStyleBordered target:self action:@selector(uploadFile:)];

    self.navigationItem.rightBarButtonItem = self.editButtonItem;
    self.navigationItem.leftBarButtonItem = uploadFileButton;
    self.title = @"DropBox";

    [[self restClient] loadMetadata:@"/"];
    [self showProcessIndicator]; //Your code for showing ProcessIndicator
}

И Скрыть, когда вы вызываете этот метод.

- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata {

    for (DBMetadata *file in metadata.contents) {
        NSLog(@"\t%@", file.filename);
        [dropBoxArray addObject:file.filename];
    }
    NSLog(@"%@", dropBoxArray);

    [self.tableView reloadData];
    [self hideProcessIndicator];
    }

Это определенно решит вашу проблему. Удачного кодирования;)

0 голосов
/ 12 февраля 2012

Не бери в голову, я понял. Это был правильный вызов для загрузки метаданных:

[[self restClient] loadMetadata:@""];
...