私は以下のようにデリゲートを通して他のビューコントローラに「itemInformation」を渡すためにプロトコルを作成しました:私のプロトコルとデリゲートは機能しませんか?
protocol ItemDataDelegate {
func ItemInformation(itemID:String,itemname:String,itemPrice:String)
}
class ItemTableViewCell: UITableViewCell {
var passItemID:String?
var PassItemName : String?
var PassAddon : String?
var PassItemPrice : String?
var Itemdelegate: ItemDataDelegate?
@IBOutlet var itemName: UILabel!
@IBOutlet var itemPrice: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
@IBAction func OrderBtnPressed(sender: AnyObject) {
print(PassItemName)
print(PassAddon)
print(passItemID)
print(PassItemPrice)
let itemnameInfo:String = PassItemName!
let itempriceInfo:String = PassItemPrice!
let itemID:String = passItemID!
Itemdelegate?.ItemInformation(itemID,itemname:itemnameInfo as String, itemPrice: itempriceInfo as String)
}
}
を今ここで私は以下のことを実現することによって、プロトコルを取得しています。 exapmleのために私は単にここでパス値を印刷しようとしていますが、何も起こりません。
class CustomAddOnVC: UIViewController,UITableViewDataSource,UITableViewDelegate, ItemDataDelegate{
var ItemTableViewCellObj:ItemTableViewCell?
override func viewDidLoad() {
super.viewDidLoad()
ItemTableViewCellObj?.Itemdelegate = self
}
func ItemInformation(itemID: String, itemname: String, itemPrice: String) {
print(itemID)
print(itemname)
print(itemPrice)
}
}
は、私がここでやっている間違いはありますか?
でItemTableViewCell OrderBtnPressed方法で
をこの行を置き換える弱参照
でItemdelegate'をデリゲートを定義します。例:cellInstance。 Itemdelegate = self – pkc456
CustomAddOnVCで、 – Sofeda
という名前の命名規則を書いてください... – holex