gpt4 book ai didi

ios - 带有 SWRevealViewController 的 Exc_bad_instruction

转载 作者:行者123 更新时间:2023-11-28 06:54:37 26 4
gpt4 key购买 nike

背景我的应用程序有一个带有 UIButton 的 MainViewController,当按下时会导致另一个 ViewController。在第二个 ViewController 中是一个 UIBarButtonItem,它有一个到 MainViewController 的“返回”segue。一切都运行良好,直到现在我在 SWRevealViewController 的帮助下编写了一个滑出菜单并且我遵循了这个 Jared Davidson 教程 https://www.youtube.com/watch?v=8EFfPT3UeWs (简单、通用、容易)

问题滑出菜单工作完美,但现在当按下第二个 ViewController 中的“后退”按钮时,由于

EXC_BAD_INSTRUCTION (code=EXC_I1386_INVOP, subcode=0x0)

来自 MainViewController 文件中的以下代码,关于滑出菜单的平移手势。

代码

这是关于滑出菜单的 MainViewControllers 代码。它工作完美,但它在第二个 ViewController 上使用简单的“返回”segue 进行推断。

@IBOutlet weak var Open: UIBarButtonItem!

override func viewDidLoad() {
super.viewDidLoad()

Open.target = self.revealViewController()
Open.action = Selector("revealToggle:")

self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) //THIS IS THE CODE WHERE THE ERROR ALEERT OCCURS

}

当最后一行代码被删除时,“后退”继续运行,但显然不是滑出菜单。

帮助是否可以仅将平移手势代码指定给 MainViewController 及其滑出菜单,并让“后退”segue 像以前一样只显示 MainViewController 和/或“忽略”这行代码。或者是否有可能以其他方式将这两者分开并避免我的应用程序在按下第二个 ViewController(返回 MainViewController)的“返回”segue 时崩溃?

在此先感谢传说。

最佳答案

首先您需要检查Open 是否为零。当未正确创建 UIViewController 时,可能会发生此错误。试试这个代码:

@IBOutlet weak var Open: UIBarButtonItem?

override func viewDidLoad() {
super.viewDidLoad()

if Open == nil {
assertionFailure("Open is nil")
}

if let revealViewController = revealViewController() {
Open?.target = revealViewController
Open?.action = "revealToggle:"

view.addGestureRecognizer(revealViewController.panGestureRecognizer())
}
}

关于ios - 带有 SWRevealViewController 的 Exc_bad_instruction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029954/

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