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 中加载,因此将调用移至 dataCheckviewWillAppear/viewDidAppear

【讨论】:

它似乎与 SideMenu 和 NavBar 冲突?知道发生了什么或为什么它可以在 iPad 而不是 iPhone 上运行?

以上是关于Swift pushViewController 适用于 iPad 但不适用于 iPhone的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中测试 pushViewController

如何在uitableviewcell swift上使用pushviewcontroller [重复]

Swift pushViewController 导致应用程序崩溃

Swift pushViewController 适用于 iPad 但不适用于 iPhone

swift 页面跳转

Swift 中的自定义 Segue