斯威夫特:当我在单独的UITableViewController中引用变量时,为什么iAction会使应用程序崩溃?
我有一个名为PinCell.swift的自定义UITableViewCell类,其中包含对UITableViewController的引用和将数据从单元格传递到UITableViewController的iAction。我没有错误,一切都很好 PinCell.swift(UITableViewCell):斯威夫特:当我在单独的UITableViewController中引用变量时,为什么iAction会使应用程序崩溃?,uitableview,swift,iboutlet,Uitableview,Swift,Iboutlet,我有一个名为PinCell.swift的自定义UITableViewCell类,其中包含对UITableViewController的引用和将数据从单元格传递到UITableViewController的iAction。我没有错误,一切都很好 PinCell.swift(UITableViewCell): var viewControllerB:UITableViewController! @IBAction func titleButtonPressed(sender: An
var viewControllerB:UITableViewController!
@IBAction func titleButtonPressed(sender: AnyObject) {
var venueIDFromRequest = self.pin?["venue"]["id"].stringValue
println("venueIDFromRequest is: \(venueIDFromRequest)")
if venueIDFromRequest != nil {
let venueDetailRef = viewControllerB as! VenueDetailViewController
venueDetailRef.venueIDPassed = venueIDFromRequest!
}
if(self.delegate != nil){ //Just to be safe.
self.delegate.callSegueFromCell(venueIDFromRequest: venueIDFromRequest!)
}
}
VenueDetailViewController.swift(UITableViewController)
当我点击我的应用程序中的按钮时,它崩溃了,并将以下内容打印到控制台致命错误:在打开一个可选值时意外发现nil,我们以前都看到过这个值,我意识到这个错误的含义。我的问题是,当它似乎在另一个视图控制器中引用变量时,为什么会发生这种情况?即使当我println(venueIDFromRequest)
时,我也能得到正确的数据。我在这里做错了什么?如何将venueIDFromRequest
分配给self.viewControllerB.venueIDPassed
下面是一个屏幕截图,如果它可以帮助诊断实际发生的情况:
是的,插座已断开连接。如何将其连接到reference VenueDetailViewController?与您最初连接它的方式相同。我打算写一个答案。。。但我不确定您是如何将视图控制器与插座连接起来的。@nhgrif Ok我完全删除了IBOutlet,并将其替换为属性var viewControllerB:UITableViewController代码>。然后在标题按钮内按下
I do让venueDetailRef=viewControllerB为!VenueDetailViewController venueDetailRef.venueIDPassed=venueIDFromRequest代码>仍然会得到与我以前相同的错误。
var venueIDPassed:String! = "asdklasdkas"