我遇到了一个问题,即从第一页导航后第二页的表格视图无法显示。
第一页重定向代码为:
- (IBAction)searchProducts:(id)sender {
ProductsViewController *proViewController = [[ProductsViewController alloc] init];
[self.navigationController pushViewController:proViewController animated:YES];
}
在productsViewController中:
#import "ProductsViewController.h"
#import "OriginViewController.h"
#import "Product.h"
@interface ProductsViewController ()
@end
@implementation ProductsViewController
NSArray *products;
- (void)viewDidLoad {
[super viewDidLoad];
Product *product1 = [Product new];
product1.name = @"马克杯";
product1.detail = @"¥57.00 - 64.00";
product1.imageFile = @"cup1.jpg";
products = [NSArray arrayWithObjects:product1, nil];
UIEdgeInsets inset = UIEdgeInsetsMake(5, 0, 0, 0);
self.tableView.contentInset = inset;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return products.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"INIT CELL.");
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
Product *product = [products objectAtIndex:indexPath.row];
UIImageView *productImageView = (UIImageView *)[cell viewWithTag:100];
productImageView.image = [UIImage imageNamed:product.imageFile];
UILabel *productNameLabel = (UILabel *)[cell viewWithTag:101];
productNameLabel.text = product.name;
UILabel *productDetailLabel = (UILabel *)[cell viewWithTag:102];
productDetailLabel.text = product.detail;
return cell;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
可以肯定两点:
有人对我有暗示吗?感谢。
答案 0 :(得分:0)
如果您使用UITableViewCell
而不使用自定义标记,则无需设置标记。
你可以做到
[cell.imageView setImage:[UIImage imageNamed:product.imageFile]];
[cell.textLabel setText:product.name];
[cell.detailLabel setText:product.detail];
如果您使用自定义单元格,则可以设置标记以检索视图或仅设置属性,或者您可以根据需要采用任何方法。但是,如果您使用Apple的默认UITableViewCell
,则默认情况下会为您提供包含label
和imageView
s的特定类型的单元格。
查看here了解更多信息。
答案 1 :(得分:0)
填充数组后,尝试调用
[myTableView reloadData];
它调用UITableView的委托方法,并将数据设置为数组中的单元格。