Перезагрузить UITableView - PullRequest
1 голос
/ 23 июня 2011

Я новый программист в Objective-C, и у меня ужасная проблема с моим первым приложением.

У меня есть один класс с именем Places (NSObject), где я нашел места в Googleместа и вернуть NSArray.

У меня есть еще один класс называется DisplayPlaces (UiViewController).Этот класс импортирует мой "Place.h".

В моем viewDidLoad у меня есть этот код:

Places *places = [[Places alloc]init];

[places.locationManager startUpdatingLocation];
[places LoadPlaces:places.locationManager.location];
[places.locationManager stopUpdatingLocation];

[places release];

В моем методе LoadPlaces Я загружаю URL JSON и помещаю результат вNSDictionary после того, как я получу только места и вставлю NSArray и вернусь.

На мой Places Я выделяю DisplayPlaces и вызываю метод ReturnPlaces: NSArray для возврата найденных мест.

- (void)ReturnPlaces:(NSArray *)locais{
    placesArray = locais;
    [self.UITableView reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [placesArray count];
}

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];

    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIndentifier] autorelease];
    }   

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.text = [placesArray objectAtIndex:indexPath.row];
    return cell;
}

Все это работает.

Моя проблема:

В моем ReturnPlaces: NSArray я звоню [MyUiTableView reloadData], но я не могу обновить свой UiTableView.

Что я могу сделать?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Установите табличное представление yourTableView как свою собственность и используйте

self.yourTableView = tableView; // for assigning the tableView contents to your property

если вы перезагружаете какой-либо метод для tableView, просто используйте

[tableView reloadData];

если вы перезагружаетесь вне методов tableView, используйте

[self.yourTableView reloadData];
0 голосов
/ 23 июня 2011

Вы вызываете reloadData для экземпляра вашего tableView.Другими словами, если у вас есть

MyUITableView *mytableView;

, то для его перезагрузки вам потребуется позвонить

[mytableView reloadData];

, а не

[MyUITableView reloadData];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...