【问题标题】:prepareForSegue is not called不调用 prepareForSegue
【发布时间】:2014-11-17 12:08:30
【问题描述】:
  1. 我使用情节提要创建了一个scrollView
  2. 我在scrollViewController 中编程创建了10 个myController(它们是UITableViewControllers),所以我可以使用panGesture 在表之间切换。并且运行良好。
  3. 我使用storyboard创建了tableViewController,设置myController为对应的视图控制器。
  4. 在导航控制器中嵌入了tableViewController
  5. 控制从表格单元格拖动到新的视图控制器以创建推送转场。
  6. 设置转场。

在运行应用程序时,永远不会调用prepareForSegue:

编辑:注意到这个问题后,我做了以下事情,但没有运气。

我还在情节提要中正确设置了 segue 标识符。并添加以下代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"segueIdentifier" sender:self];
}

但是当我点击屏幕上的任何表格单元格时,程序将崩溃并出现以下错误:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“Receiver () 没有标识符为“segueIdentifier”的segue” * 首先抛出调用栈:

这是为什么呢?

【问题讨论】:

  • 错误是不言自明的,不是吗?您尝试执行的转场在您的故事板中不存在。您可能忘记命名了,或者标识符中有错字。
  • 我确实通过单击 segue 图标添加了 segue 标识符并将文本放入标识符框中。你说的是这个吗?
  • 是的,尽管我很确定这与您以编程方式创建的控制器有关。 Segues 只能与故事板一起使用,但您可以尝试创建手动 segue。见:stackoverflow.com/questions/9674685/…
  • 我又查了一遍标识符,完全没问题,一模一样。
  • 是否匹配segueIdentifier?两者必须相同。还要确保在键入后按回车键(或返回),否则不会设置。

标签: ios objective-c uitableview segue


【解决方案1】:

我认为你的问题在这里“5.控制从表格单元格拖动到新的视图控制器以创建推送segue。

尝试从您的视图控制器(而不是表格单元格)拖动到新的视图控制器并创建 push segue,然后尝试使用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"segueIdentifier" sender:self];
}

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2017-01-11
    • 2012-03-11
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多