註冊cell可重用單元格注意事項

在storyboard中已經註冊了cell的可重用標識符 點擊cell時 push到下一個視圖控制器後  spa

若是 再用代碼 註冊一邊cell的可重用單元格  會覆蓋以前代理

// 視圖被加載完成以後被調用,stroyboary中的原型cell,已經存在
- (
void)viewDidLoad
{
    [
super viewDidLoad];
   
   
// tableView註冊可重用單元格,使用Cell做爲可重用標識符,會覆蓋以前在storyboard中註冊的原型cell
   
// 並無segue連線,因此再點擊tableViewCell,就不會跳轉了
    [
self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
}
開發


解決方法能夠在UITableView的代理方法選中某行時  原型

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


   
CZWebViewController* vc = [[CZWebViewController alloc] init];
   
    [
self.navigationController pushViewController:vc animated:YES];

    // 拼接文件全路徑 傳給目標控制器
    vc.
fullPath = [self.fileDir stringByAppendingPathComponent:self.files[indexPath.row]];
}
it

若是用stroyboard註冊cell時 用下面的方法給目標控制器傳值io

// 用來給目標視圖控制器賦值的,用storyborad開發
- (
void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   
CZWebViewController *vc = segue.destinationViewController;
   
   
// 1. 知道用戶當前選中的行
   
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
   
NSLog(@"%@", self.files[indexPath.row]);

    vc.
fullPath = [self.fileDir stringByAppendingPathComponent:self.files[indexPath.row]];

}
table

相關文章
相關標籤/搜索