uitableviewcell segue 不起作用
Posted
技术标签:
【中文标题】uitableviewcell segue 不起作用【英文标题】:uitableviewcell segue don't work 【发布时间】:2013-11-06 02:10:48 【问题描述】:我是ios新手,我用storyboard写了一些基本代码供学习。
我有一个标签栏控制器,它有两个标签栏项目。我希望第二个项目显示一个 tableview,所以我将 tableview 拖到 uiviewcontroller,然后在 tabview 中,我添加一个静态表格单元格。然后我拖动一个 uiviewcontroller 和在其中显示一个文本标签。
我希望当我单击表格单元时,程序会将我带到具有简单文本标签的 uiviewcontroller,因此我将表格单元中的 segue 添加到新的 uiviewcontroller,但它似乎不起作用。
我的代码在这里:dropbox
【问题讨论】:
【参考方案1】:将第二个 View Controller 设为 UITableViewController,而不是将 UITableView 拖到 UIViewController。这是必要的,因为静态表格视图仅适用于 UITableViewControllers。
请参阅此处回答的相同问题以及为什么在这种情况下不起作用的参考:How do I get Prototype TableView Content to show in a Tab Bar ViewController?
将其更改为 UITableViewController 后,将新的 segue 从静态单元格拖到您的destinationViewController,它应该可以按预期工作。
【讨论】:
我收到此错误消息,由于未捕获的异常“NSGenericException”而终止应用程序,原因:“只有在源控制器由 UINavigationController 的实例管理时才能使用推送序列。 知道了。您可以使用以下两个选项之一轻松解决此问题: [选项 1] 通过选择控制器,然后单击编辑器 > 嵌入 > 导航控制器,将新 UITableViewController 嵌入导航控制器。这样 push segue 就可以工作了。 [选项 2] 通过单击它并从 Segue Attributes Inspector 中选择 Modal 而不是 Push 来更改 segue 样式。两种方式的行为略有不同,具体取决于您想要的用户流。【参考方案2】:您必须删除您的单元格的模式连接并将您的添加到您的代码中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UIViewController *detailController = [self.storyboard instantiateViewControllerWithIdentifier:@"detailController"];
[self addChildViewController:detailController];
[detailController didMoveToParentViewController:self];
[self transitionFromViewController:self toViewController:detailController duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^ completion:^(BOOL finished) ];
您必须在界面生成器中将 detailController
之类的 StoryBoard ID 设置为带有标签的控制器
【讨论】:
我想使用故事板来实现它,或者我必须编写代码来做到这一点?你能告诉我如何添加 segue 使其工作吗?以上是关于uitableviewcell segue 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何执行从自定义 UITableViewCell(xib) 到另一个 ViewController 的 segue 视图
在 Swift 3 中单击和双击 UITableViewCell
UITableViewCell 持有 UICollectionView 并单击收集单元格 segue
从 UITableViewCell 中的 UIButton 触发 Segue
如何从自定义 UITableViewCell 触发 segue - iOS7
Swift:选择 UICollectionViewCell(在 UITableViewCell 内)时如何使用 Segue