我有一个有 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/