我在我的Swift应用程序中添加了第二个ViewController,我正在尝试将IBOutlets添加到它,就像我在第一个ViewController中一样。由于某种原因,文件被破坏,每当我点击导致第二个屏幕连接到新ViewController(称为MyOwnViewController)的按钮时,应用程序会收到错误消息“Interface Builder文件中的未知类MyOwnViewController”和“终止应用程序”由于未捕获的异常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:此类不是键值showOption3的键值编码。'“showOption3是我试图在屏幕上调用的IBOutlet的名称启动。
import Foundation
class MyOwnViewController: UIViewController {
@IBOutlet var showOption3: UILabel!
@IBOutlet var showOption4: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
var voteCount1 = PFObject(className: "VoteCount")
voteCount1["choices"] = 2
voteCount1["votes"] = Int()
voteCount1["votes2"] = Int()
voteCount1["optionName"] = String()
voteCount1["optionName2"] = String()
voteCount1["objectId"] = String()
voteCount1["pollNumber"] = Int()
var query = PFQuery(className: "VoteCount")
query.countObjectsInBackgroundWithBlock {
(count: Int32, error: NSError!) -> Void in
if error == nil {
let randNumber = Int(arc4random_uniform(UInt32(count)))
query.whereKey("pollNumber", equalTo: randNumber)
query.getFirstObjectInBackgroundWithBlock {
(voteCount1: PFObject!, error: NSError!) -> Void in
if error != nil {
NSLog("%@", error)
} else {
let votes = voteCount1["votes"] as Int
let votes2 = voteCount1["votes2"] as Int
let option1 = voteCount1["optionName"] as String
let option2 = voteCount1["optionName2"] as String
self.showOption3.text = "\(option1)"
self.showOption4.text = "\(option2)"
}
}
} else {
println("error \(error)")
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
我尝试在Connections Inspector中删除IBOutlets的连接,它确实删除了错误并允许第二个View Controller出现,但它也完全禁用了IBOutlets。当MyOwnViewController屏幕出现时,我仍然需要显示IBOutlets。
答案 0 :(得分:0)
要删除操作,有两种方法:
1)你进入故事板,然后点击带有插座的按钮,然后在右侧面板上,点击带有阵列的圆形和带有连接的十字架。
2)使用" @ IBOutlet"删除代码行。
希望这有帮助,