2017-03-04 35 views
0

我有一个collectionView,它返回一个帖子数组,[Post]。在collectionViews单元类(实际的帖子)里面,我有一个叫profileSegueContainer的视图。 isUserInteractionEnabled当然设置为true,并且我有一个UITapGestureRecognizer,它在点击此视图时运行一个函数。这个函数只提供了另一个ViewController。当我点击profileSegueContainer时,我希望能够将post.uid传入此ViewController。我如何实现这一目标?谢谢。相关代码如下。任何意见将不胜感激...Swift 3:将indexPath传入另一个类

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) 
    } 
} 
+0

可以achive使用自定义点击类,试试这个代码 进口的UIKit 类customTap:UITapGestureRecognizer {VAR objPost:帖子! =零 } // 使用像: 让自来水= customTap(目标:自我,动作:#selector(handleProfileSegue :)) tap.objPost = yourPostDataobject profileSegueContainer.addGestureRecognizer(TAP) –

+0

@Jay Mahta感谢的人。意义重大。你能举个例子吗? – Jimmy

+0

我已更新我的评论。看看它一次。 –

回答

0

希望我正确理解你的问题。你想传递一个值到一个新的UserProfileController对象?

属性添加到您的UserProfileController

class UserProfileController : UIViewController { 
    public var postId : Int! 
// more stuff .... 
} 

然后你只需访问您创建对象后,属性:

func handleProfileSegue(sender: UITapGestureRecognizer) { 
    let userProfileController = UserProfileController() 
    userProfileController.postId = 2345 
    // more stuff... 
} 

让我知道这是你需要的东西。如果没有,我们会更新我们的帖子。

+0

不幸的是,当我尝试在UserProfileController加载后打印postId时,它将返回一个零 – Jimmy

+0

@Jimmy是否可以在'setupViews()'方法中打印'postId'? –

相关问题