我在视图控制器的容器中嵌入了一个表视图控制器。
在视图和表视图中,控制器prepareForSegue方法我把NSLog(@“控制器名称”) 我看到了视图控制器的日志,但没有看到表视图控制器。我不应该看到我的表视图的prepareForSegue的nslog?
答案 0 :(得分:15)
正如 - 正如Greg解释的那样,嵌入类型的segue是
这非常令人困惑。你可以这么说
名称"准备segue"只有在你真正" segueing"从一个场景到另一个场景
在iOS应用中,容器视图很常见,你可以在任何地方看到它们,而你很少使用实际的#34;场景segue"。
真的," prepareForSegue"应该被称为:
"嘿,我们正在设置您的所有容器视图 - 您现在可以获取所需的任何信息!哦,如果你碰巧做了一个场景,你也可以使用它!"
怎么样:
containerViewBeingSetUpOhAndAlsoPrepareForSegueIfYouHappenToBeDoingThat:
这有点长,但更清楚!
这只是关于iOS的一些奇怪的事情,你必须知道,但从未在任何地方解释过。
以下是为初学者使用容器视图的完整说明https://stackoverflow.com/a/23403979/294884
答案 1 :(得分:1)
在您的日志框架视图中,在initWithCoder之后将直接调用prepareForSegue:准备TableViewController。我无法在表视图控制器和另一个视图(右侧视图)之间看到您的连接,但我相信当您点击该行时将会调用它。
// EXTENDED
另一件事可能是您没有在视图层次结构上添加UINavigationController,并且您将segue样式设置为“push”。尝试在属性检查器中将segue的样式更改为“模态”。 希望这有帮助。
答案 2 :(得分:0)
我花了一些时间阅读关于所有这些的长篇答案。这是简短的回答:
IB中没有为包含设置调用{p>prepareForSegue:
。 包含的视图控制器将添加为子视图控制器。您只需在self.childViewControllers
中查找所需的视图控制器。
答案 3 :(得分:0)
除了已经讨论的内容之外,您还应确保在接下来的委托调用中不要忽略segue标识符。
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender