【发布时间】:2018-02-07 06:39:44
【问题描述】:
我已尝试按照提到的说明here 将 UI 组件连接到我的视图控制器。虽然,每当我生成这条线
@IBOutlet weak var mt: UITextView!
当我运行我的应用程序时,它会在使用消息启动 segue 后发出 SIGABRTs
Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '[<UIViewController 0x10336c400> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key mt.'
我浏览了其他帖子,这不可能是死链接,因为我刚刚创建了它,当我删除引用出口时,应用程序不再崩溃。
有人可以告诉我如何解决这个问题吗?所有相关代码如下。
视图控制器
performSegue(withIdentifier: "mySegueID", sender: nil)
...
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "mySegueID") {
if let destinationViewController = segue.destination as? MessageViewController {
destinationViewController.message = "Hi friend"
}
}
}
消息视图控制器
import UIKit
class MessageViewController: UIViewController {
var message:String = "default"
@IBOutlet weak var mt: UITextView!
override func viewDidLoad(){
super.viewDidLoad()
mt.text = message
}
}
提前谢谢你!
【问题讨论】:
-
1.转到每个视图控制器的检查器(在故事板/IB 右侧)并检查您是否有任何名为“mt”的引用出口,该出口未连接到该特定视图控制器的任何 iboutlet
-
您没有在情节提要中为您的视图控制器设置自定义类,因此您得到的是通用的
UIViewController,而不是您的MessageViewController- 您可以从异常消息中看到这一点;它引用了UIViewController -
@Paulw11 这就是它的样子,当你点击灰色箭头时,它会将你带到 MessageViewController.swift imgur.com/a/ETEWl
-
@ibnetariq 这就是我的检查员的样子imgur.com/a/1Kcss
-
检查情节提要中的每个视图控制器。我的猜测是你试图测试一些东西并在其他一些控制器中留下一个名为“mt”的引用。 imgur.com/a/UjHCu
标签: ios swift segue viewcontroller