【问题标题】:How to use segues from view controller that has a XIB for it's design?如何使用具有 XIB 设计的视图控制器的 segues?
【发布时间】:2023-03-13 01:55:01
【问题描述】:

我正在情节提要中实现导航层次结构。对于我的部分导航,我正在向下钻取一棵数据树,所以我有几个视图控制器,它们的外观完全相同,但数据管理不同,因此它们需要单独的控制器。为避免重复,我在 XIB 中为这些视图进行了布局,为 XIB 创建了一个 VC 类来处理设置视图,然后我为情节提要中的每个 VC 扩展该类以处理 UITableViewDataSource 内容。

现在导航工作正常,但我希望在 XIB 视图上有一个按钮,可以触发展开切换回到开头。我在故事板中设置了标识符,从带有 XIB 布局的 VC 到主屏幕,但无论我做什么,当我调用 performSegueWithIdentifier 时,我总是收到 has no segue with identifier 错误。

我认为发生的事情是,在加载 XIB 时,所有额外添加到情节提要中的视图控制器的内容都会被删除。我发现这些视图中的导航项正在发生这种情况,我必须在代码中创建导航项,因为无法在 XIB 中添加导航项。我怀疑segues正在发生一些相关的事情,但我无法找到解决方法。是否不可能在情节提要中拥有一个 VC,其布局在 XIB 中,然后从中执行转场?有没有一种程序化的方式可以在不设置情节提要的情况下进行展开转场?

【问题讨论】:

    标签: ios swift xib xcode-storyboard unwind-segue


    【解决方案1】:

    只有在使用情节提要时才能展开。因此,在您的情况下,您必须使用 UINavigationController.popViewControllerAnimatedUIViewController.dismissViewControllerAnimated:completion:

    【讨论】:

    • 我知道转场只能在故事板中使用,而我正在使用故事板。问题是,如果情节提要中的视图控制器的根视图由 XIB 定义,则 segues 实际上并没有被连接起来。我相信这只是 Interface Builder 中的一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2011-09-22
    • 2012-08-22
    相关资源
    最近更新 更多