-1

我知道有很多类似的帖子,但没有人回答我的情况。我看到的所有帖子都只涉及主故事板。我正在导航到另一个名为 Date_Popup 的故事板,它在 NC 中嵌入了一个 VC。问题是这段代码可以在 iPhone 上运行,所以我知道 segue.identifier、Storyboard ID 和 VC ID 是正确的。另外,我在我的 7 个旧应用程序中使用了相同的代码,并且在那里运行良好。我很沮丧它在那里工作而不是在这个新应用程序中。我不确定这是 Xcode 问题还是什么。我留下了注释掉的代码,所以读者知道我已经尝试过两种方式。如果我注释掉引发错误的行,则代码将执行,但不会设置 preferredContentSize。谢谢你的帮助。

这是我得到错误的地方。

popupVC = segue.destination as! Date_Popover_VC

她是我的密码。

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
    {
        if segue.identifier == K.Segue.to_Date_Popover
        {
            var popupVC = UIStoryboard(name: K.StoryboardID.date_Popup_SB, bundle: nil).instantiateViewController(identifier: K.StoryboardID.date_Popover_VC) as! Date_Popover_VC
            let navigationController = UINavigationController(rootViewController: popupVC)
            
            // let storyboard : UIStoryboard = UIStoryboard(name: K.StoryboardID.date_Popup_SB, bundle: nil)
            // var popupVC: Date_Popover_VC = storyboard.instantiateViewController(withIdentifier: K.StoryboardID.date_Popover_VC) as! Date_Popover_VC
            // let navigationController = UINavigationController(rootViewController: popupVC)
            
            let deviceName = UIDevice().type
            let deviceString: String = ("\(deviceName)")
            
            if deviceString.contains(K.theDevice.iPad)
            {
                popupVC = segue.destination as! Date_Popover_VC
                
                if ModelData.isInline()
                {
                    popupVC.preferredContentSize = CGSize(width: 320, height: 300)

                } else {

                    popupVC.preferredContentSize = CGSize(width: 350, height: 410)
                }

                navigationController.isNavigationBarHidden = true
                
            } else if deviceString.contains(K.theDevice.iPhone) {
                
                present(navigationController, animated: true, completion: nil)
                navigationController.isNavigationBarHidden = false
            }
            
            popupVC.theDate = dateFld_Outlet.text!
            popupVC.dateDelegate = self
        }
    }
4

1 回答 1

0

我终于弄清楚了我想错的地方。在主情节提要上,情节提要对日期弹出框的引用链接到 segue。故事板需要是故事板的名称,而引用 ID 需要是该故事板上 VC 的名称。故事板是从下拉菜单中选择的。需要输入引用的 ID。它实际上与 UINavigationController 无关,因此错误措辞有点误导。

主要故事板

故事板参考

于 2021-07-08T01:43:39.587 回答