如何在’didSelectRowAtIndexPath’中访问segue – SwiftIOS

如何在’didSelectRowAtIndexPath’中访问segue – SwiftIOS,第1张

概述我知道如何使用prepareForSegue函数中的segue传递数据,但是我有一个TableViewCell,它有两个可能的段到两个不同的ViewControllers(我们现在就说A,B).建议 here最好将segue连接到View控制器而不是tableCell本身,这实际上是完美的.但是我想在单击单元格时将信息传递给第二个View控制器,那么如何访问我连接到Source ViewContr 我知道如何使用prepareForSegue函数中的segue传递数据,但是我有一个tableVIEwCell,它有两个可能的段到两个不同的VIEwControllers(我们现在就说A,B).建议 here最好将segue连接到VIEw控制器而不是tableCell本身,这实际上是完美的.但是我想在单击单元格时将信息传递给第二个VIEw控制器,那么如何访问我连接到Source VIEwController的segue.

码:

在prepareForSegue里面

if segue.IDentifIEr == "showQuestionnaire"{      if let indexPath = self.tableVIEw.indexPathForSelectedRow() {        let controller = (segue.destinationVIEwController as! UINavigationController).topVIEwController as! QuestionnaireController        let patIEntQuestionnaire = patIEntQuestionnaires[indexPath.row] as! PatIEntQuestionnaire        controller.selectedQuestionnaire = patIEntQuestionnaire        self.performSegueWithIDentifIEr("showQuestionnaire",sender: self)      }    }

再说一遍:这个问题不是关于通过prepareForSegue传递信息

您应该使用dIDSelectRowAtIndexPath方法来确定是否选择了单元格.
func tableVIEw(tableVIEw: UItableVIEw,dIDSelectRowAtIndexPath indexPath: NSIndexPath) {    self.performSegueWithIDentifIEr("showQuestionnaire",sender: indexPath);}

然后在prepareForSegue方法中

overrIDe func prepareForSegue(segue: UIStoryboardSegue!,sender: AnyObject!) {    if (segue.IDentifIEr == "showQuestionnaire") {        let controller = (segue.destinationVIEwController as! UINavigationController).topVIEwController as! QuestionnaireController        let row = (sender as! NSIndexPath).row; //we kNow that sender is an NSIndexPath here.        let patIEntQuestionnaire = patIEntQuestionnaires[row] as! PatIEntQuestionnaire         controller.selectedQuestionnaire = patIEntQuestionnaire    }}

解释…

>我使用索引路径作为发送方,因此我可以轻松地传递索引路径.您还可以使用其他UItableVIEw方法检查当前选定的单元格,但我总是以这种方式成功完成>你不能将performSegueWithIDentifIEr放在准备segue方法中,因为performSegueWithIDentifIEr会导致prepareForSegue;你只是四处走动,没有目标. (当你想执行segue时,总是会执行prepareForSegue)>选择行时,prepareForSegue不会自行运行.这是您需要dIDSelectRowAtIndexPath的地方.你需要在前面描述的方法之外的performSegueWithIDentifIEr,它应该在dIDSelectRowAtIndexPath中

总结

以上是内存溢出为你收集整理的如何在’didSelectRowAtIndexPath’中访问segue – Swift / IOS全部内容,希望文章能够帮你解决如何在’didSelectRowAtIndexPath’中访问segue – Swift / IOS所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1033463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存