Segue 不适用于动态添加的子视图
Posted
技术标签:
【中文标题】Segue 不适用于动态添加的子视图【英文标题】:Segue not working for dynamically added subview 【发布时间】:2012-09-07 01:02:26 【问题描述】:我有一个带有视图 A 的故事板,它位于导航控制器内。我将子视图 B 动态添加到视图 A。子视图 B 有一个表格视图,而表格视图单元格有一个到详细视图的序列(推送)。当我单击单元格时,会调用 prepareForSegue 方法,但从不显示详细视图。如果我将序列切换到模态,则详细视图将显示在视图 A 内,子视图 B 所在的位置。
我想要发生的事情是将详细视图推送到导航控制器上,当用户返回详细视图时,它会返回视图 A,并嵌入子视图 B。
下面是我用来添加子视图的代码:
if(!self.homeViewController)
self.homeViewController = [self.storyboardinstantiateViewControllerWithIdentifier:@"HomeView"];
if(self.currentViewController != self.homeViewController)
[self.view insertSubview:self.homeViewController.view belowSubview:self.tabBar];
[self.currentViewController removeFromParentViewController];
self.currentViewController = self.homeViewController;
【问题讨论】:
【参考方案1】:如果没有看到您的代码(和情节提要),这可能很难诊断。然而,我发现有时让 segues 与动态加载的内容一起正常工作是一件苦差事。在某些情况下,我发现使用 UINavigationController 的 pushViewController:animated: 和 popViewController:animated 方法可能是更好的方法。您应该可以通过 UIViewcontroller.navigationController 访问 UINavigationController。
【讨论】:
我已经添加了添加子视图的代码。我想知道是否需要以编程方式执行此操作,但希望不必这样做。以上是关于Segue 不适用于动态添加的子视图的主要内容,如果未能解决你的问题,请参考以下文章
iOS + Swift 2:UITableViewCell 中的动态高度不适用于空视图