问题:在选择一个特定的 时,应该打开uitableviewcell
一个新的。DetailViewController
我已经编写了代码,didSelectRowAtIndexPath
但是当我单击单元格时,它向我显示运行时错误。
我试过打电话,[self.navigationController presentModalViewController:jacket animated:YES ];
但是当我这样做时,我的视图控制器没有打开。
我尝试的另一种方法是通过 [self.navigationController performSegueWithIdentifier:@"JacketDetails" sender:self ];
.
我在检查器中有“JacketDetails”的segued 中的指定标识符,但在这里我得到一个运行yime 错误。我已经从UITABLEVIEWCELL
to上钩了 Segue VIEWCONTROLLER
。
当我单击该行时JacketDetailViewController
应该打开。我已经创建了类JacketDetailViewController
,并且New ViewController
我已经在检查器中为此设置了类。
我不知道为什么它没有显示 segue ,我已经在检查器中给出了标识符并正确地连接tableviewcell
到新的视图控制器。
在JacketDetailViewController
我想显示夹克列表。目前它是空白的ViewController
。
我的代码如下。你能提出一个解决方案吗?我是这个领域的自学初学者。我可能犯了一些小错误。我已经用谷歌搜索了我的问题并试图解决它,但我已经在这里停留了几天。
TshirtDetailViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
[tableView deselectRowAtIndexPath:indexPath animated:YES ];
JacketDetailController *jacket =[[JacketDetailController alloc]init];
NSInteger index =indexPath.row;
NSLog(@"Row:%d",index);
NSString *titleString = [[NSString alloc] initWithFormat:[jackets objectAtIndex:indexPath.row]];
NSLog(@"%@",titleString);
jacket.title=titleString;
// ...
// Pass the selected object to the new view controller.
[self.navigationController performSegueWithIdentifier:@"JacketDetails" sender:self ];
// [self.navigationController presentModalViewController:jacket animated:YES ];
}
@end
控制台中的错误:
2013-01-07 10:52:21.020 KidsShopee[617:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<UINavigationController: 0x6a5fac0>) has no segue with identifier 'JacketDetails''
*** First throw call stack:
(0x13bf052 0x1550d0a 0xdd24b 0x3e8e 0xa671d 0xa6952 0x92e86d 0x1393966 0x1393407 0x12f67c0 0x12f5db4 0x12f5ccb 0x12a8879 0x12a893e 0x16a9b 0x1b08 0x1a65 0x1)
terminate called throwing an exception(gdb)