【发布时间】:2015-09-05 06:04:47
【问题描述】:
我需要通过单击UITableView 内的按钮将字符串从一个tableview 传输到另一个。我知道如何通过按钮获取indexPath,如下所示:
let button = sender as MyButton
let view = button.superview!
let cell = view.superview as! MyTableViewCell
let indexPath = tableView.indexPathForCell(cell)
上面的代码可以在单击按钮时获取单元格的索引路径,但是为了传输数据,我必须使用prepareForSegue。所以很自然地,我尝试使用 prepare for segue 并将 sender 从 AnyObject 更改?给MyButton
然后我收到一条错误消息,说“使用选择器prepareforsegue覆盖方法的类型不兼容。”
我在 swift 中搜索并阅读了有关 delegates 以及这些内容如何提供帮助的信息,我在这里尝试了 MakeAppPie 给出的答案:
Delegates in swift? 但它对我不起作用。
有没有什么方法可以将准备 segue 和我上面的代码结合起来?我试过这个,但它导致了我上面提到的错误消息:
override func prepareForSegue(segue: UIStoryboardSegue, sender: MyButton) {
let myVC = segue.destinationViewController as? CommentsViewController
let usender:AnyObject = sender!
let button = usender as? MyButton
let view = button.superview!
myVC!.title = button.titleForState(.Normal)
let cell = view.superview as! QuestionCell
let indexPath = tableView.indexPathForCell(cell)
println(self.short_descriptionArray)
var row = self.tableView.indexPathForSelectedRow()?.row
myVC!.nameToGet = short_descriptionArray[row!]
}
【问题讨论】:
标签: ios xcode swift uitableview delegates