我正在尝试导航到另一个ViewController,但它不是通过段连接的,所以我对导航栏进行了编程,当y按下名为"Start Over“的按钮时,我想要的是我请求的ViewController出现,但出现以下错误:
“无法转换预期参数类型UIViewController的MemeEditorViewController.Type yo类型的值”
所以我不知道该怎么处理。这是我的代码,也许你可以帮我做得更好。
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(title:"Start Over", style: .Plain, target: self, action: "startOver")
}
func startOver(){
if let navigationController = self.navigationController {
navigationController.popToViewController(MemeEditorViewController, animated: true)
}
}
}发布于 2016-06-23 09:10:23
如果只有一个类型为MemeEditorViewController的viewcontroller,您可以找到控制器并以这种方式弹出到它:
let vc = self.navigationController?.viewControllers.filter({$0 is MemeEditorViewController}).first
self.navigationController?.popToViewController(vc!, animated: true)或者你需要知道vc在堆栈中的位置,然后找到它:
let vc = self.navigationController?.viewControllers[1]注意:当您推送viewcontroller时,navgationcontroller会将其存储在具有强引用的数组viewcontrollers中。您可以找到您推送的viewcontroller实例。
希望它能有所帮助:D
https://stackoverflow.com/questions/37980570
复制相似问题