Swift 3 – 将segue推送到导航控制器

Swift 3 – 将segue推送到导航控制器,第1张

概述在我的故事板中,我有一个View Controller,我还有一个导航控制器和另一个名为HistoryController的View Controller.导航控制器和HistroyController有一个关系“根视图控制器” 我的第一个视图控制器上有一个按钮,该按钮有一个推送到导航控制器的按钮. 我在第一个视图控制器中有这个代码来准备segue: override func prepare(f 在我的故事板中,我有一个VIEw Controller,我还有一个导航控制器和另一个名为HistoryController的VIEw Controller.导航控制器和HistroyController有一个关系“根视图控制器”

我的第一个视图控制器上有一个按钮,该按钮有一个推送到导航控制器的按钮.

我在第一个视图控制器中有这个代码来准备segue:

overrIDe func prepare(for segue: UIStoryboardSegue,sender: Any?) {        if let vIEwController = segue.destination as? HistoryController {            vIEwController.detailitem = barcodeInt as AnyObject        }    }

我的问题是当我运行我的代码并按下我的第一个控制器中的按钮时,我收到此错误:

Could not find a navigation controller for segue 'HistorySegue'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

我的问题是,为什么我会收到此错误,我该如何解决?

我尝试了以下内容

overrIDe func prepare(for segue: UIStoryboardSegue,sender: Any?) {        if let navVC = segue.destinationVIEwController as? UINavigationController{            if let historyVC = navVC.vIEwControllers[0] as? HistoryController{                historyVC.detailitem = barcodeInt as AnyObject            }        }    }

我也试过了

overrIDe func prepare(for segue: UIStoryboardSegue,sender: Any?) {    if let nav = segue.destination as? UINavigationController {        if let vc = nav.visibleVIEwController as? HistoryController {            vc.detailitem = barcodeInt as AnyObject        }    }}

我仍然得到同样的错误:

Could not find a navigation controller for segue 'HistorySegue'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
您需要将源视图控制器嵌入到导航控制器中,或将segue类型从推送更改为其他内容.此外,尝试将目标控制器转换为UINavigationController以防止在初始控制器之后出现另一个错误(如果已修复):
overrIDe func prepare(for segue: UIStoryboardSegue,sender: Any?) {        if let navVC = segue.destinationVIEwController as? UINavigationController{            if let historyVC = navVC.vIEwControllers[0] as? HistoryController{                historyVC.detailitem = barcodeInt as AnyObject            }        }    }

看看它是否适合你.

编辑:更新了上面的代码.

总结

以上是内存溢出为你收集整理的Swift 3 – 将segue推送到导航控制器全部内容,希望文章能够帮你解决Swift 3 – 将segue推送到导航控制器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1033156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存