如图,做了一个tableview,每个cell都能拿到数据并且显示ok,每个cell的最左边是一张头像,现在在头像的UIImageView上添加了userAction,tap后会打开新的view,在新的view里面需要用到原来这个cell的user数据,现在问题就是,我不知道该怎么去把这个user传递到新的view里面去,因为在这个tableview页面中,点击某一个cell的头像的时候,不知道点击的是哪一个,不知道该传哪个user数据过去,
如果是点击整个cell,是可以通过func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
方法来处理的,但是这种我就不知道怎么处理了。。。
部分代码:
添加tapguesture的:
cell.userImage.userInteractionEnabled = true
let userDetailInfoSelector: Selector = #selector(EventViewController.openUserInfoPage)
let userDetailInfoGustue = UITapGestureRecognizer(target: self, action: userDetailInfoSelector)
userDetailInfoGustue.numberOfTapsRequired = 1
cell.userImage.addGestureRecognizer(userDetailInfoGustue)
TapGesture的action,
func openUserInfoPage() {
let userDetailViewController = self.storyboard?.instantiateViewControllerWithIdentifier("UserDetailViewController") as! UserDetailViewController
userDetailViewController.user = ?????//如何传递?
print("in event view controller: \(self.bookOwner?.username)")
let backItem = UIBarButtonItem(title: "<", style: .Plain, target: self, action: #selector(EventViewController.goBack))
userDetailViewController.navigationItem.leftBarButtonItem = backItem
userDetailViewController.navigationItem.title = "\(userDetailViewController.user?.username) 的书架"
let followButton = UIBarButtonItem(title: "关注", style: .Plain, target: self, action: #selector(EventViewController.follow))
userDetailViewController.navigationItem.rightBarButtonItem = followButton
self.navigationController?.pushViewController(userDetailViewController, animated: true)
}
1个方法是用super view,更好的办法这个方法写在cell内,用block回调