2016-11-10 1 views
0

UICollectionViewCell에서 UICollectionView를 참조 할 수 있습니까? 마지막으로 UICollectionViewCell에서 ViewController를 참조하려고합니다.UICollectionViewCell에서 UICollectionView를 참조하는 방법은 무엇입니까?

다음 코드는 내 CustomCollectionViewCell 클래스에 있습니다. 이 수업에서 짹짹 지원을 보관하고 싶습니다.

@IBAction func tweetBtnTapped(_ sender: Any) { 
    let cvc = SLComposeViewController(forServiceType: SLServiceTypeTwitter) 
    if let c = cvc { 
     c.setInitialText("test tweet from iOS App") 

     ### How can I refer ViewController?? 
     viewController = ??????? 

     if let vc = viewController { 
      vc.present(c, animated: true, completion: nil) 

     } 
    } 
} 

답변

0

코드 샘플 또는 달성하고자하는 것을 제공해주십시오. 내가 이해하는 것은 당신이 당신의 셀에 어떤 행동을 수행 할 때 당신의보기 컨트롤러에서 어떤 행동을 다시 원한다는 것입니다. 나 맞아?

클래스 CustomeCell : 의견, 사용자 지정 컬렉션 뷰 셀당으로

그래서

수입 UIKit

: UICollectionViewCell {

@IBAction func tweetButtonPressed() { 

    let cvc = SLComposeViewController(forServiceType:SLServiceTypeTwitter) 
    if let c = cvc { 
     c.setInitialText("test tweet from iOS App") 

     self.parentViewController?.presentViewController(c, animated: true, completion: nil) 
    } 

} 

}

는 Extension.Swift 파일을 만듭니다

확장자 UIView {

var parentViewController: UIViewController? { 

    var parentResponder: UIResponder? = self 

    while parentResponder != nil { 
     parentResponder = parentResponder!.nextResponder() 

     if let viewController = parentResponder as? UIViewController { 

      return viewController 

     } 

    } 

    return nil 

} 

}

이 나를 위해 노력하고 있습니다. 모두 제일 좋다!

+0

의견을 보내 주셔서 감사합니다. 내 질문을 업데이트했습니다. –

+0

위임을 사용할 수도 있습니다. 따라서 셀 안의 버튼을 탭하면 뷰 컨트롤러로 다시 위임 한 다음 소셜 VC를 표시 할 수 있습니다. 또는 UIVIew에서 상위 컨트롤러를 가져온 다음 사용자 지정 셀 클래스 내에서 사용하고 View 컨트롤러를 표시하는 확장을 만들 수도 있습니다. 나는 위임을 사용하여 개인적으로 할 것입니다. 셀에 새로운 컨트롤러를 표시하는 코드가 있어서는 안되기 때문에 확장을 사용하여 솔루션을 게시하고 있습니다. – Ashish

+0

그래서 내 collectionview 셀 클래스입니다. – Ashish

관련 문제