2017-03-04 2 views
0

게시물 배열 [Post]을 반환하는 collectionView가 있습니다. collectionViews 셀 클래스 (실제 게시물) 안에는 profileSegueContainer이라는 뷰가 있습니다. isUserInteractionEnabled는 물론 true로 설정되어 있으며이 뷰가 탭될 때 함수를 실행하는 UITapGestureRecognizer이 있습니다. 이 함수는 단순히 다른 ViewController를 제공합니다. profileSegueContainer을 탭하면이 ViewController에 post.uid을 전달할 수 있기를 원합니다. 이것을 어떻게 성취합니까? 고맙습니다. 관련 코드는 다음과 같습니다. 어떤 조언을 높게 평가됩니다 ...스위프트 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

,이 코드를 수입 UIKit 클래스 customTap보십시오 : UITapGestureRecognizer를 { var에 objPost : 포스트! = } // 사용 LIKE 무기 호 : 하자 탭 = customTap (대상 : 자기 행동 : #selector (handleProfileSegue :)) tap.objPost = yourPostDataobject profileSegueContainer.addGestureRecognizer (탭) –

+0

@Jay Mahta 감사 남자. 의미심장하다. 예제를 제공해 주시겠습니까? – Jimmy

+0

내 의견을 업데이트했습니다. 한번보세요. –

답변

0

바라건대 정확하게 문제를 이해하고 있습니다. 새로운 UserProfileController 객체에 값을 전달하고 싶습니까?

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

이 당신이 필요로 무엇을 알려줘 :

그런 다음 당신은 단지 당신이 당신의 객체를 생성 한 후 속성에 액세스하여 UserProfileController

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

에 속성을 추가합니다. 그렇지 않은 경우 Google은 게시물을 업데이트합니다. 당신은 사용자 정의 탭 클래스를 사용하여 achive 수

+0

유감스럽게도 UserProfileController가로드되면 postId를 인쇄하려고 할 때 nil을 반환합니다. – Jimmy

+0

@Jimmy는'setupViews()'메소드에서'postId'를 출력 할 수 있습니까? –