从数组填充UITableView

时间:2010-12-06 14:28:24

标签: iphone arrays uitableview ios loops

我需要帮助以下代码我正在使用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];

我想从数组“titles”中创建并填充表格 然后能够点击表格上的项目来加载一个子视图,该子视图应该在相同的索引处显示相应的artical?

我想以编程方式或使用IB

进行此操作

有人可以建议一些示例代码或教程吗?

感谢。

3 个答案:

答案 0 :(得分:4)

    - (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 :(得分:1)

作为一种通用方法,您只需将相关的控制器类设置为相关UITableView的委托,然后实现以下方法:

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

但是,我建议阅读Apple的Table View Programming guide - 它不仅仅是一个简单的代码示例,而且相当容易理解。

完成后,如果您仍在使用示例代码后,只需下载UITableView Class reference的“相关示例代码”部分中的一个项目即可。 (如果你在Xcode的Apple文档查看器中执行此操作,它会自动执行下载等操作,并会为您打开Xcode中的项目。)

答案 2 :(得分:0)

首先,您必须在.h文件中设置UITableViewDelegate和UITableViewDatasource,在其中创建tableview并声明NSarray来存储表值,并且在viedidload函数的.m文件中,您需要使用对象初始化数组(arr_name = [ NSArray alloc] initwith 对象:@“one”,@“two”,nil)你必须放置这三种方法

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

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