从 UIButton 调用 prepareforSegue?
Calling prepareforSegue from a UIButton?
我正在尝试从 UITableViewCell
中的按钮调用 TableViewController
中的 prepareForSegue
函数。
我可以只通过按钮调用它吗?类似于:
表视图控制器:
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!)
}
会不会太简单了,还是我漏掉了什么?
PrepareForSegue
会在您调用 performSegueWithIdentifier
时自动触发(或通过 Storyboard 连接两个 UIView CTRL-从第一个 UIView
拖动到第二个 UIView
)。你不能称它为 "manually"
是的,你可以,但你需要覆盖 prepareForSegue() 函数。如果您使用 'code only' segue,则使用它,并且可用于将值传递给新的视图控制器。例如,这是一个使用三个按钮的 'Roshambo' 游戏,一个只有代码,一个有情节提要和代码,还有一个只有情节提要。一个 prepareForSegue() 用于 select 根据调用 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"}
已解决。我通过 UIButton
选项 tag
传递了索引并替换了 indexPathForSelectedRow
.
我正在尝试从 UITableViewCell
中的按钮调用 TableViewController
中的 prepareForSegue
函数。
我可以只通过按钮调用它吗?类似于:
表视图控制器:
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!)
}
会不会太简单了,还是我漏掉了什么?
PrepareForSegue
会在您调用 performSegueWithIdentifier
时自动触发(或通过 Storyboard 连接两个 UIView CTRL-从第一个 UIView
拖动到第二个 UIView
)。你不能称它为 "manually"
是的,你可以,但你需要覆盖 prepareForSegue() 函数。如果您使用 'code only' segue,则使用它,并且可用于将值传递给新的视图控制器。例如,这是一个使用三个按钮的 'Roshambo' 游戏,一个只有代码,一个有情节提要和代码,还有一个只有情节提要。一个 prepareForSegue() 用于 select 根据调用 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"}
已解决。我通过 UIButton
选项 tag
传递了索引并替换了 indexPathForSelectedRow
.