これを使用しようとしましたが、solutionは動作しません。 私はカスタマイズされたセルのボタンで、テーブルビューから使用される配列のデータを知っています(後でCoreDataに適用します)。たとえば、テーブルビューを生成した配列の値を出力します。Swift 3のカスタマイズされたUITableViewCellでボタンを実装する方法は?
が、私はそれを
を行う方法を理解することはできません私はボタンアクションまたは(タグ付き)出口ボタンの両方を使用しようとしたカスタマイズされたセルクラス、持っている:
import UIKit
class MyTableViewCell: UITableViewCell {
@IBOutlet weak var myCellImage: UIImageView!
@IBOutlet weak var myCellLabel: 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
}
}
をそして、のViewControllerはどこ拡張子を持つ私のテーブルビューで
extension ViewController {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return comicsArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = myTableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! MyTableViewCell
cell.myCellLabel.text = String(indexPath.row)
cell.myCellButton.tag = indexPath.row
cell.myCellButton.addTarget(self, action: Selector("logAction:"), for: .touchUpInside)
return cell
}
func logAction(sender: UIButton) {
let titleString = self.comicsArray[sender.tag]
let firstActivityItem = "\(titleString)"
let activityVC = UIActivityViewController(activityItems: [firstActivityItem], applicationActivities: nil)
self.present(activityVC, animated: true, completion: nil)
}
}
EDIT:サブクラスセルに追加することにより、abdullahselekの助けを借りて解決
:
public var dataFromTableView : String!
と実装:
@IBAction func myCellButtonTapped(_ sender: UIButton) {
guard dataFromTableView != nil else {return}
print("pushed \(dataFromTableView!)")
}
とcellForRowAtで:
cell.data = comicsArray[indexPath.row]
中でデータに到達することができますが、私はそれらを使用することができるか、代表者 – GeneCode
こんにちはGeneCodeを使用することができますか? – biggreentree
私はすぐに知っていません。しかしここに例があります:http://stackoverflow.com/a/29724262/501439 – GeneCode