Ich habe eine CollectionView, die ein Array von Beiträgen zurückgibt, [Post]
. Innerhalb der collectionViews-Zellklasse (der eigentlichen Posts) habe ich eine Ansicht namens profileSegueContainer
. Das isUserInteractionEnabled wird natürlich auf True gesetzt und ich habe eine UITapGestureRecognizer
, die eine Funktion ausführt, wenn diese Ansicht angetippt wird. Diese Funktion präsentiert einfach einen anderen ViewController. Ich möchte die post.uid
in diesen ViewController übergeben, wenn ich auf profileSegueContainer
tippen. Wie erreiche ich das? Vielen Dank. Der entsprechende Code ist unten. Jeder möglicher Rat wird in hohem Grade geschätzt ...Swift 3: Pass im IndexPath in eine andere Klasse
class Post: NSObject {
var author: String?
var avatar_image_url: String?
var likes: Int?
var postImageUrl: String?
var uid: String?
var post_id: String?
var hashtags: [String]?
}
class PostCell: BaseCell {
var homeController: HomeController?
lazy var profileSegueContainer: UIView = {
let view = UIView()
view.isUserInteractionEnabled = true
return view
}()
override func setupViews() {
super.setupViews()
let tap = UITapGestureRecognizer(target: self, action: #selector(handleProfileSegue))
profileSegueContainer.addGestureRecognizer(tap)
topBar.addSubview(profileSegueContainer)
}
func handleProfileSegue() {
let userProfileController = UserProfileController()
let navigationUserProfileController = UINavigationController(rootViewController: userProfileController)
homeController?.present(navigationUserProfileController, animated: true, completion: nil)
}
}
Sie können mit benutzerdefinierten Tap Klasse achive, versuchen Sie diesen Code Import UIKit Klasse customTap: UITapGestureRecognizer { var objPost: Pfosten! = Nil } // verwenden wie: let tap = customTap (Ziel: Selbst, Aktion: #selector (handleProfileSegue :)) tap.objPost = yourPostDataobject profileSegueContainer.addGestureRecognizer (tap) –
@Jay Mahta Dank Mann. Bedeutet viel. Könnten Sie bitte ein Beispiel geben? – Jimmy
Ich habe meinen Kommentar aktualisiert. Schau es dir einmal an. –