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 中的动态高度不适用于空视图

将 segue 添加到动态创建的单元格

为啥音译不适用于动态添加输入字段?

如何将自动完成添加到动态添加的输入字段?自动完成功能不适用于动态添加的输入字段

.validator('update') 不适用于动态添加的字段