Перезагрузить данные на UITableView - PullRequest
1 голос
/ 28 марта 2011

как перезагрузить в классе UITableView.

Я использую метод reloadData, но он не работает.

- (id)initWithCoder:(NSCoder *)coder
{
     if (self = [super initWithCoder:coder]) 
    {
        [self init];
    }
    return self;
}

-(id)init
{   

    appdelegate=[[UIApplication sharedApplication]delegate];
    [appdelegate readLiteratureFromDatabase];
    tbl_obj.backgroundColor=[UIColor clearColor];
    tbl_obj.delegate = self;
    tbl_obj.dataSource = self;  
    [tbl_obj reloadData];
    array_content = [[NSMutableArray alloc] init];

    return self;
}

Здесь вызов метода init в другом классе. Так что в это время таблицы не перезагружаются.

пожалуйста, помогите!

Ответы [ 4 ]

1 голос
/ 28 марта 2011

Возможно, вы не подключили DataSource и Delegate к XIB

или

Вы можете сделать это с помощью кода, используя:

self.tableView.delegate = self;
self.tableView.datasource = self;

Также вы должны добавить его, как показано ниже:

@interface <YourViewControllerName>:UIViewController <UITableViewDelegate,UITableViewDataSource>

РЕДАКТИРОВАТЬ:

Но вы должны постараться понять, что ваши элементы управления, такие как UITableView, нельзя напрямую вызывать и устанавливать в ваш класс UIView.

Это должен быть UIViewController только тогда, когда есть возможность добавлять и заполнять данные в TableView.

Таким образом, вы можете вызвать методы делегата данных и источника данных, а также reloadData в ViewController, который работает как parentView для этого UIView.

Поэтому, если вы не поступите так, я боюсь, что это невозможно.

Надеюсь, это поможет вам.

1 голос
/ 28 марта 2011

Из вашего кода видно, что вам действительно нужно это прочитать;

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

У вас не должно быть метода с именем init, который не вызывает super, который в конечном итоге будет связывать вещи.

Установка вашего docs ivar в пустую неизменяемую строку ничего не делает, но тратит память. В конце концов вам нужно будет установить документацию на что-то реальное, подождите до этой точки, чтобы сделать какое-либо распределение.

Далее загрузите образец TableViewSuite отсюда;

http://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40007318

И взгляните на простой пример.

Пожалуйста, найдите время, чтобы изучить этот образец, он поможет вам понять представления таблицы.

0 голосов
/ 05 апреля 2011

У меня была такая же проблема, и я просто использовал viewDidLoad, чтобы добавить данные, и в конце я использовал [super loadView];, и он перезагрузился.

0 голосов
/ 28 марта 2011

У UIView нет метода reloadData. Описание классов UIView

Может быть, вы можете показать свой код, чтобы мы могли видеть, что вы пытаетесь сделать?

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