我正在为我的UITableView创建表格视图和自定义视图。基本上我有FirstViewController与表视图和CustomTableViewCell。在自定义单元格中,我将所有控件链接到头文件并在具有UITableViewCell的超类文件中实现。我正在创建一个按钮,并希望以编程方式使用" instantiateViewControllerWithIdentifier"为了更加灵活的未来。这有问题:
正在初始化按钮
[self.playButton addTarget:self action:@selector(NavigationMethod) forControlEvents:UIControlEventTouchUpInside];
NavigateMethod
UIViewController *secondViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"SecondViewController"];
[(FirstViewController*) presentViewController:secondViewController animated:YES completion:nil];
因为所有内容都在UITableViewCell而不是UIViewController。
答案 0 :(得分:0)
你在这里打破了模型视图控制器的方法......在FirstViewController中你应该有
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MYCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[MYCustomTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; // might not be UITableViewCellStyleDefault
[cell.playButton addTarget:self action:@selector(navigationMethod) forControlEvents:UIControlEventTouchUpInside];
}
// all indexPath based tableViewCell changes here
return cell;
}
现在-(void)navigationMethod
也可以进入你的FirstViewController类。这将允许你打电话
[self presentViewController:secondViewController animated:YES completion:nil];
或
[self.navigationController presentViewController:secondViewController animated:YES completion:nil];
只是添加以及..发送到实例的无法识别的选择器意味着在这种情况下,在UITableViewCell子类中找不到方法NavigationMethod