我正试图通过prepareForSegue
中的按钮从TableViewController
中调出UITableViewCell
个功能。
我可以通过按钮调用它吗?类似的东西:
TableViewcontroller:
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "segueExercise") {
print(segue.identifier)
let vc = segue.destinationViewController as! DetailViewController
TableViewCell:
@IBAction func exerciseAction(sender: UIButton) {
ViewController.prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
}
这太容易了,还是我错过了什么?
答案 0 :(得分:7)
PrepareForSegue
时(或通过故事板连接两个UIView CTRL - 从第一个performSegueWithIdentifier
拖动到第二个UIView
),会自动触发 UIView
。你无法“手动”称呼它
答案 1 :(得分:0)
是的,你可以,但你需要覆盖prepareForSegue()函数。如果您使用“仅代码”segue,则可以使用此选项,并且可以将其用于将值传递给新视图控制器。例如,这是一个'Roshambo'游戏,它使用三个按钮,一个只有代码,一个有故事板和代码,一个只有故事板。一个prepareForSegue()用于根据调用segue的按钮选择要传递的值。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let nextController = segue.destinationViewController as! RoshamboViewController
nextController.opponentValue = self.randomRoshambo()
//determine which segue called prepareForSeque
if (segue.identifier == "choosePaper") {
nextController.playerValue = "paper"}
else if segue.identifier == "chooseScissors"{
nextController.playerValue = "scissors"}
答案 2 :(得分:0)
解决。我通过UIButton
选项tag
传递了索引,并替换了indexPathForSelectedRow
。