在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