gpt4 book ai didi

ios - 使用 swift 的 DestinationViewController Segue 和 UINavigationController

转载 作者:行者123 更新时间:2023-11-30 11:32:13 26 4
gpt4 key购买 nike

我已经构建了一个侧面菜单,当您单击栏按钮项目时会弹出,单击菜单选项之一后, View Controller 会加载正确的数据,但栏按钮项消失。所以我做了一些研究我发现问题是我的 Segue 目的地,我的 Segue 目的地是 View Controller 而不是导航 Controller ,所以我尝试更改我的代码,最终结果如下:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

if let cell = sender as? UITableViewCell{
let i = tableView.indexPath(for: cell)!.row
if segue.identifier == "viewController"{

let nav = segue.destination as! UINavigationController
let addEventViewController = nav.topViewController as! ViewController

addEventViewController.varView = i
}
}
}

现在我收到此错误:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

我的 Storyboard: enter image description here

最佳答案

请更新您的代码,如下所示。这里 sharedAppdelegate() 是 appdelegate 的共享实例

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

if let cell = sender as? UITableViewCell{
let i = tableView.indexPath(for: cell)!.row
if segue.identifier == "viewController"{

let yourDestinationController = segue.destination as! ViewController
let nav = UINavigationController.init(rootViewController: yourDestinationController)
let win = AppDelegate.sharedAppdelegate().window
win.rootViewController = nav
win?.makeKeyAndVisible()
addEventViewController.varView = i
}
}
}

在您的Appdelegate中添加以下方法

 static func sharedAppdelegate() -> AppDelegate
{
return UIApplication.shared.delegate as! AppDelegate
}

关于ios - 使用 swift 的 DestinationViewController Segue 和 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com