Swift pushViewController 适用于 iPad 但不适用于 iPhone
Posted
技术标签:
【中文标题】Swift pushViewController 适用于 iPad 但不适用于 iPhone【英文标题】:Swift pushViewController Works on iPad but not iPhone 【发布时间】:2019-05-30 00:44:54 【问题描述】:我不知道发生了什么,但我的代码在 iPhone 上停止运行,但在 iPad 上运行良好。 (使用 Xcode 10 和 Swift 4)
我首先检查数据,如果没有设置,则将其传输到 ConfigVC。
对于任何手机设置,模拟器都不会发生任何事情。我竟然重新安装了我的系统软件和 Xcode。
我在其他应用程序上使用相同的方法,这很好。出于某种奇怪的原因,它刚刚停止在此应用上运行。
func dataCheck()
// make sure the required data is set
if User.getInfo() == nil || Index.getAll() == nil
let vc = UIStoryboard.init(name: "Config", bundle: Bundle.main).instantiateViewController(withIdentifier: "ConfigVC") as? ConfigVC
self.navigationController?.pushViewController(vc!, animated: true)
代码显示它刚刚结束。
【问题讨论】:
如果你在 if 里面放了一个断点,它会被命中吗? 你做了什么调试?发布的代码实际上在 iPhone 上做了什么?self
在导航控制器内吗?
我不擅长调试的东西。我是菜鸟。是的,断点被击中。
它什么也不做。它只是停留在启动屏幕上
将self.navigationController?
更改为self.navigationController!
并尝试如果崩溃发布它?
【参考方案1】:
您正在尝试推送/呈现 vc,而当前尚未在 viewDidLoad
中加载,因此将调用移至 dataCheck
内 viewWillAppear
/viewDidAppear
【讨论】:
它似乎与 SideMenu 和 NavBar 冲突?知道发生了什么或为什么它可以在 iPad 而不是 iPhone 上运行?以上是关于Swift pushViewController 适用于 iPad 但不适用于 iPhone的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中测试 pushViewController
如何在uitableviewcell swift上使用pushviewcontroller [重复]
Swift pushViewController 导致应用程序崩溃