ios – 如何使用swift代码在按钮单击中在自定义UITableViewCell中显示UIAlertController?

我想在按钮单击中在自定义UITableViewCell中显示UIAlertController.但我找不到任何办法.请看下面我试过的代码.

代码在UITableViewCel中给出错误,如上图所示.
请帮帮我.全班代码如下:

class CustomCellDeerCalls: UITableViewCell {

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

@IBOutlet weak var playButton: UIButton!
@IBOutlet weak var detialsInfoButton: UIButton!

@IBOutlet weak var DeerCallNameLabel: UILabel!

var arrayOfDetialsInfoDeerCalls: [String]=["This sound is a doe's way of locating other deer of her family group . This call can be used all year long.","Grunts are a doe's way of saying come here,also to call her fawns at Feeding time . It is critical to keep the call soft as a loud grunt is too aggressive of a call.","A buck grunt is a deeper pitch than a doe grunt,it means the same thing . The older the buck the deeper the tone. ","As the buck chases the doe as the rut approaches he is frustrated,and makes a series of soft grunts while trailing her. It's the bucks way of asking her to stop so he can be breed with her.","This sound's a lot like a calf bawl,but it is a series of buck bleats. This signals the bucks desire for company.","This is a non aggressive and social behavIoUr that all bucks do after shedding their velvet . This is when the bucks learn who can whip the other . This process does not prevent serIoUs fights later on during the rut.","This is the sound that a buck makes during the courtship when the doe stops running,but won't let the buck breed her. It's a non aggressive and frustration call by him.","This is the sound that a Doe makes to signal that her breeding time is near.","This is the sound that a Doe makes to signal that she ready to breed RIGHT Now.","Deer make this sound to intimidate other deer and prevent fights. This call is often made by a rut- crazed buck when confronted with a rival. This sound can send smaller buck running from the area.","Another rut crazed Bucks sound to intimidate other deer and prevent fights when confronted with a rival. This sound can also send smaller buck running from the area.","This is a short aggressive rattling sequence to possibly lure in less aggressive,but curIoUs buck,as well as the local dominant whitetail buck of the area. To make this sound like a real fight sniffs,wheezes and grunts have also been thrown in for added effect."]


var arrayOfDeerSoundsCall: [String]=["CONTACT","doegrunt","bkgrunt","tend","bawl","spar","rage","estrusb","bellow","sniff","wheeze","rattle"]

// var arrayOfCallsName:[String] = [“”]

@IBAction func clickDetialsInfoButton(sender: AnyObject) {

   var alert = UIAlertController(title: "dddddd",message: arrayOfDetialsInfoDeerCalls[sender.tag],preferredStyle: UIAlertControllerStyle.Alert)
   alert.addAction(UIAlertAction(title: "OK",style: UIAlertActionStyle.Default,handler: nil))

self.presentViewController(alert,animated: true,completion: nil)
    //sender.sup
   //
}

var audioPlayer = AVAudioPlayer()


@IBAction func clickplayButton(sender: AnyObject) {

    println(sender.tag)

    var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(arrayOfDeerSoundsCall[sender.tag],ofType: "wav")!)
    println(alertSound)

    // Removed deprecated use of AVAudioSessionDelegate protocol
    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback,error: nil)
    AVAudioSession.sharedInstance().setActive(true,error: nil)

    var error:NSError?
    audioPlayer = AVAudioPlayer(contentsOfURL: alertSound,error: &error)
    audioPlayer.preparetoPlay()
    audioPlayer.play()



}
override func setSelected(selected: Bool,animated: Bool) {
    super.setSelected(selected,animated: animated)

    // Configure the view for the selected state
}
func setCell(callName: String){

self.DeerCallNameLabel.text=callName

}

}

解决方法

我找到了解决方案.以下是上述问题的代码.
在viewcontroller中为按钮编写以下代码,其中存在表视图.
func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let deerNameCell: CustomCellDeerCalls = tableView.dequeueReusableCellWithIdentifier("Cell") as CustomCellDeerCalls
    let deercallcell=arrayOfCallsName[indexPath.row]

    deerNameCell.DeerCallNameLabel.text=deercallcell.callName
    deerNameCell.playButton.tag=indexPath.row
    deerNameCell.detialsInfoButton.tag=indexPath.row
    deerNameCell.detialsInfoButton.addTarget(self,action: "showAlert:",forControlEvents:UIControlEvents.TouchUpInside)

    return deerNameCell

}

和相同视图控制器中的警报功能

func showAlert(sender:UIButton!)
{
    println(sender.tag)
    let deercallcell=arrayOfCallsName[sender.tag]
    var alert = UIAlertController(title: deercallcell.callName,preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "OK",handler: nil))

    self.presentViewController(alert,completion: nil)

}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...