Swift 委托 return 无
Swift Delegate return nil
我尝试从 UITableViewCell 调用 UIAlertController。
我有我的代表
protocol DEPFlightStripCellDelegate {
func callAlert(AlertCon: UIAlertController!)
}
我在下面的 TableViewCell Class 中调用了它。
class DEPFlightStripCell: UITableViewCell {
var delegate: DEPFlightStripCellDelegate?
@IBAction func changeClearedFlightLevel(sender: UIButton) {
let AddAlert: UIAlertController = UIAlertController(title: "Select Altitude", message: "", preferredStyle: .Alert)
self.delegate?.callAlert(AddAlert)
}
}
为了显示视图控制器,我在我的 mainView class 中使用 DEPFlightStripCellDelegate 设置它并调用我在上面声明的函数 "callAlert" 来显示警报。
class mainView: UIViewController,UITextFieldDelegate, DEPFlightStripCellDelegate {
func callAlert(AlertCon: UIAlertController!) {
println("Test")
self.presentViewController(AlertCon, animated: true, completion: nil)
}
}
然而委托return无。有人知道为什么吗?
您的 mainView
实例尚未分配为 DEPFlightStripCell
中的 delegate
。当您实例化该单元格时,通常在 table 视图委托方法中,您应该为该单元格提供委托。
类似于:
class mainView: UIViewController,UITextFieldDelegate, DEPFlightStripCellDelegate {
// ...
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
as! DEPFlightStripCell
cell.delegate = self
return cell
}
// ...
}
我尝试从 UITableViewCell 调用 UIAlertController。
我有我的代表
protocol DEPFlightStripCellDelegate {
func callAlert(AlertCon: UIAlertController!)
}
我在下面的 TableViewCell Class 中调用了它。
class DEPFlightStripCell: UITableViewCell {
var delegate: DEPFlightStripCellDelegate?
@IBAction func changeClearedFlightLevel(sender: UIButton) {
let AddAlert: UIAlertController = UIAlertController(title: "Select Altitude", message: "", preferredStyle: .Alert)
self.delegate?.callAlert(AddAlert)
}
}
为了显示视图控制器,我在我的 mainView class 中使用 DEPFlightStripCellDelegate 设置它并调用我在上面声明的函数 "callAlert" 来显示警报。
class mainView: UIViewController,UITextFieldDelegate, DEPFlightStripCellDelegate {
func callAlert(AlertCon: UIAlertController!) {
println("Test")
self.presentViewController(AlertCon, animated: true, completion: nil)
}
}
然而委托return无。有人知道为什么吗?
您的 mainView
实例尚未分配为 DEPFlightStripCell
中的 delegate
。当您实例化该单元格时,通常在 table 视图委托方法中,您应该为该单元格提供委托。
类似于:
class mainView: UIViewController,UITextFieldDelegate, DEPFlightStripCellDelegate {
// ...
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
as! DEPFlightStripCell
cell.delegate = self
return cell
}
// ...
}