Заполнение UITableView из массивов - PullRequest
2 голосов
/ 06 декабря 2010

Мне нужна помощь со следующим кодом, я использую hpple для разбора HTML.и мне нужна помощь в использовании данных.

-(void) whatever{
NSData *htmlData = [[NSString stringWithContentsOfURL:[NSURL URLWithString: @"http://www.objectgraph.com/contact.html"]] dataUsingEncoding:NSUTF8StringEncoding];
TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlData];
NSArray *titles  = [xpathParser search:@"//h3"]; // get the page title - this is xpath     notation
TFHppleElement *title = [titles objectAtIndex:0];
NSString *myTitles = [title content];

NSArray *articles  = [xpathParser search:@"//h4"]; // get the page article - this is xpath     notation
TFHppleElement *article = [articles objectAtIndex:0];
NSString *myArtical = [article content];

Я хочу создать и заполнить таблицу из массива «заголовки». Затем я могу щелкнуть элемент таблицы, чтобы загрузить подпредставление, которое должно отображать соответствующийartical с тем же индексом?

Я хотел бы сделать это программно или с помощью IB

Может кто-нибудь предложить какой-нибудь пример кода или учебник?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 06 декабря 2010
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

return [titles count];

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{



        static NSString *MyIdentifier = @"MyIdentifier";

        UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
        if (cell == nil){
            cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
        }


    cell.textLabel.text = [titles objectAtIndex:indexPath.row];

        return cell;

}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

/* here pop up Your subview with corresponding  value  from the array with array index indexpath.row ..*/

}
1 голос
/ 06 декабря 2010

Как общий подход, вам просто нужно установить соответствующий класс контроллера в качестве делегата для рассматриваемого UITableView, а затем реализовать следующие методы:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Однако я бы порекомендовал прочитать руководство Apple по программированию табличного представления - оно поможет понять гораздо больше, чем простой пример кода, и за ним достаточно просто следовать.

После того, как вы это сделаете, если вы все еще ищете пример кода, просто загрузите один из проектов в разделе «Связанный пример кода» Ссылка на класс UITableView . (Если вы сделаете это в программе просмотра документов Apple в XCode, она автоматизирует загрузку и т. Д. И запустит проект для вас в XCode.)

0 голосов
/ 24 октября 2013

Сначала вы должны установить UITableViewDelegate и UITableViewDatasource в файле .h, где вы создаете представление таблицы, и объявить NSarray для хранения значений таблицы, а в файле .m функции viedidload вам нужно инициализировать массив объектами (arr_name = [ NSArray alloc] initwith Объекты: @ "one", @ "two", nil), и вы должны разместить эти три метода

  • (NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) раздел
  • (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath

  • (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath

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