ios - 在 Swift 4 中呈现来自 ParentViewController 的 uiviewcontroller

标签 ios swift xcode swift4 xlpagertabstrip

我有一个有 2 个 subview 的父 View ,我试图将 uiviewcontroller 显示为“以模式方式呈现”,我使用以下代码:

class ParentCtrl: ButtonBarPagerTabStripViewController {
    let obj = ChildCtrl()
override func viewDidLoad() {
        super.viewDidLoad()
        obj.someClassMethod()
    }
}

class ChildCtrl: UIViewController, IndicatorInfoProvider {
   struct Storyboard {
    static let segue_id = "segue_id"
}
   public func someClassMethod(){
        self.performSegue(withIdentifier: Storyboard.segue_id, sender: self)
    }

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if(segue.identifier == Storyboard.segue_id){
            let destino = segue.destination as! NewViewController
            destino.seleccion = seleccion
        }
    }
}

但我收到以下错误:

没有带有标识符“segue_id”的segue 但是,是的,我有那个标识符,因为如果我复制:

self.performSegue(withIdentifier: Storyboard.segue_id, sender: self)

在 viewDidload 方法中呈现 NewViewController

我该如何解决这个问题?

最佳答案

您只是创建一个 ChildCtrl 实例,而不是使用来自 Storyboard的实例。因此,该实例对任何 Storyboard 文件一无所知,因此没有执行 Segue 的上下文。

您需要从屏幕上的 ChildCtrl 实例执行转场。

关于ios - 在 Swift 4 中呈现来自 ParentViewController 的 uiviewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53040329/

相关文章:

ios - 使用 Swift 格式化段落文本

ios - Xcode UI测试的一个测试用例中的Delay/Wait

ios - 是什么导致此 Crashlytics 编译警告? (自动链接在 '...' 处提供的 '...' 框架链接器选项不是 dylib)

ios - xcode:在 Storyboard 中看不到导航项

ios - 生成二维码

ios - 在任意位置画圆

swift - 获取 NSDate 并快速将其从 24 小时格式转换为 12 小时格式

ios - 在 TableView 的自定义单元格上隐式展开可选值

SwiftUI 列表选择始终为零

Xcode、Swift、无法识别的单元测试类/方法