ios - 通过按钮替换 ViewController,线程 1 : EXC_BAD_INSTRUCTION

标签 ios swift uitableview uiviewcontroller

我想用一个 ViewController 替换我的 UITableViewController ,里面有一个 UITableView 。为此,我使用以下代码:

@objc func buttonAction(sender: UIButton!) {
    let newController = storyboard?.instantiateViewController(withIdentifier: "VcId") as! JobTableViewController
    self.navigationController?.present(newController, animated: true, completion: nil)
}

但是我一直在第二行得到这个错误

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

最佳答案

你应该这样做:

guard let newController = storyboard?.instantiateViewController(withIdentifier: "VcId") as? JobTableViewController else {return}
self.navigationController?.present(newController, animated: true, completion: nil)}

发生错误的原因可能是在 Storyboard中找不到 viewcontroller,您可能提供了错误的 ID。

关于ios - 通过按钮替换 ViewController,线程 1 : EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51736448/

相关文章:

iphone - iOS - RestKit 并清除所有数据?

ios - 我如何在 ARSKView 中创建暂停菜单?

ios - 在 iOS 8 中自动调整 UITableViewCell 的大小

ios - 启用/禁用 UIButton 取决于 UITextField 中文本的长度

ios - 如何从 objc 返回数据列表到 swift?

ios - 将 Expo 应用上传到 TestFlight 不会加载 .env 文件

ios - Swift/Backendless -Facebook 登录可在 iPhone 上使用,但不能在 iPad 模拟器上使用。如何正确使用Facebook SDK?

ios - 如何在 Swift 中的 HeightForRowAt 函数中设置 UITableViewCell 的大小后调整其大小?

android - 在 Firemonkey 中获取 Android 设备和操作系统信息

ios - 通过隐藏和显示 View 在 iMessage 应用程序中使用不同的 View