我知道有很多类似的帖子,但没有人回答我的情况。我看到的所有帖子都只涉及主故事板。我正在导航到另一个名为 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
}
}