• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 在选择 UITableViewCell 时导航到新的 DetailViewController

[复制链接]
菜鸟教程小白 发表于 2022-12-13 00:22:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

问题:在选择特定的 uitableviewcell 时,应该打开一个新的 DetailViewController。我已经在 didSelectRowAtIndexPath 中编写了代码,但是当我单击单元格时,它向我显示运行时错误。

我尝试使用 [self.navigationController presentModalViewController:jacket animated:YES ]; 调用,但是当我这样做时,我的 View Controller 没有打开。

我尝试的另一种方法是 [self.navigationController performSegueWithIdentifier"JacketDetails"sender:self ];.

我在检查器中有“JacketDetails”的segued 中指定的标识符,但在这里我得到一个运行yime 错误。我已经从 UITABLEVIEWCELL Hook Segue 到 VIEWCONTROLLER

当我点击行 JacketDetailViewController 应该是打开的。我已经创建了类 JacketDetailViewController 并且对于 New ViewController 我已经在检查器中为此设置了类。

我不知道为什么它没有显示 segue ,我已经在检查器中给出了标识符并正确地从 tableviewcell Hook 到新的 View Controller 。

JacketDetailViewController 我想显示夹克列表。目前它是空白的ViewController

我的代码如下。你能提出一个解决方案吗?我是这个领域的自学初学者。我可能犯了一些小错误。我用谷歌搜索了我的问题并试图解决它,但我已经在这里停留了几天。

TshirtDetailViewController.m

- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)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) 



Best Answer-推荐答案


尝试使用这些行打开 View :

    YoutubeViewController *objYoutubeViewController = [[YoutubeViewController alloc]initWithNibName"YoutubeViewController" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewControllerbjYoutubeViewController animated:YES];
    [objYoutubeViewController release];

代替 YoutubeViewController 给你的 View Controller 类名并更改这些行

根据您的情况并检查。如果您使用 Storyboard ,请尝试如下操作:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName"MainStoryboard" bundle:nil];
 bookmarkViewController *myVC = (bookmarkViewController *)[mainStoryboard instantiateViewControllerWithIdentifier"bookmarkViewController"]
[self presentModalViewController:myVC animated:YES];

代替bookmarkViewController 给出您的 Controller 名称并检查。在拖放 View 中

主 Storyboard中的 Controller 给出正确的类名,如下图所示:enter image description here

代替我的 bookmarkViewController 名称,给出您要打开的 View Controller 名称。

关于iphone - 在选择 UITableViewCell 时导航到新的 DetailViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190370/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap