2017-11-06 2 views
0

쉐어 시트를 가져 오려고하고 있으며 펑크 및 팝 액션 항목에서 작업 버튼을 탭합니다. 문제는 공유 시트가 지정된 VC에서 나와야한다는 것입니다. 정상적인 벤처 캐피털에서, 나는 단지 자신을 말할 것입니다. 그러나이 경우 작업 항목을 두드리면 일반적으로 공유 시트를 표시하는 vc가 해제됩니다. 그것은 동작 아이템이 엿봄과 팝으로 작동하는 방법입니다. 공유 시트가 원본 VC 또는 VC 아래에 표시되도록하려면 어떻게해야합니까?엿보기 및 팝과 공유 시트

다음은 공유 시트의 코드입니다.

//This is in the function createShareSheet 
branchUniversalObject.showShareSheet(with: linkProperties, andShareText: "Check out this post!", from: self) { (string, bool) in 
    print ("done") 
} 

여기에는 작업 항목에 대한 코드입니다 :

override var previewActionItems: [UIPreviewActionItem] { 
    let action2 = UIPreviewAction(title: "Share", style: .default, handler: { previewAction, viewController in 

     //This basically gives data to the function that has the above code for creating the share sheet. 
     self.createShareSheet(self.selectedItem!) 
     return [action2] 
    }) 
+0

당신은 통과해야 올바른 VC에서 공유의 장을 제공하기 위해 peek 행동 처리기에서 rootVC 속성을 사용할 수 있습니다 엿보기 및 미리보기 액션 코드를 통해 적절한 VC에서 공유 시트를 만들 수 있습니다. – Paulw11

+0

항상 동일한 VC에서 왔으며 1 개의 VC 만 있습니다. 예를 들어 원래의 vc에 대한 참조를 상수로 설정할 수 있습니다. 어떻게 끝낼까요? –

+0

할 수 없습니다. 실제 인스턴스가 필요합니다. 매번 – Paulw11

답변

0

나에게 정확한 솔루션을 제공하기 위해 당신은 충분히 코드를 제공하지 않은,하지만 기본적으로 당신은 당신의 "현재"를 통과해야합니다 컨트롤러를 "엿보기"보기 컨트롤러에 연결하여 공유 시트를 제공 할 수 있습니다. 같은

뭔가 :

이제
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 

    guard let detailVC = storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController else { return nil } 

    detailVC.rootVC = self 

    return detailVC 
} 

원래 뷰 컨트롤러에 대한 참조를 전달

관련 문제