2016-08-04 5 views
0

내 SpriteKit 게임에서 모두 가로 방향으로 SafariViewController를 보여줍니다.Swift SafariViewController animation

func showSafariViewController(forURL url: String) { 
    guard let validURL = NSURL(string: url) else { return } 

    let safariViewController = SFSafariViewController(URL: validURL) 
    safariViewController.delegate = self 
    // present safariViewController 
} 

열기/닫기 애니메이션은 오른쪽에서부터입니다.

Facebook SDK를 사용하여 Facebook에 로그인 할 때 SafariViewController도 사용하고있는 것처럼 보이며 맨 아래에서 움직입니다.

내가이를 달성 할 수있는 방법이 있습니까?

답변

1

FacebookSDK 동작은 약간 까다 롭습니다. SafariVC를 다른보기 컨트롤러 (containerVC)에 추가 한 다음 SafariVC가 아닌 containerVC를 표시합니다.

내가이 동작을 구현하는 예 쓰기 (마스크를 자동 크기에 대해 확실하지를, 당신은 자동 레이아웃 사용해야 할 수 있지만 그것은 당신에게 달려 있습니다) :

let containerVC = UIViewController() 
    let url = URL(string: "https://yandex.ru")! 
    let safariVC = SFSafariViewController(url: url) 
    containerVC.addChildViewController(safariVC) 
    safariVC.view.autoresizingMask = [ .flexibleWidth, .flexibleHeight ] 
    safariVC.view.frame = containerVC.view.frame 
    containerVC.view.addSubview(safariVC.view) 
    safariVC.didMove(toParentViewController: containerVC) 
    self.present(containerVC, animated: true, completion: nil) 
+0

가 대단히 감사합니다. 나는 내일이 기회를주고 다시보고 할 것이다. 다른 스택 질문을 나는 그것을 같은 방식으로하지만 viewController 대신 위쪽 막대가 숨겨진 설정된 UINav 막대에 추가 한 것을 보았다. 처음에는 작동하는 것처럼 보였지만 사파리 VC를 열거 나 닫으면 버튼/인터페이스없이 흰색 화면을 볼 수 있습니다. 나는 그것을 정상적으로 추가하는 것을 결코 복제 할 수 없었다. 나는 VC와 함께 노력하고 당신에게 알려줍니다. 다시 한 번 감사드립니다 – crashoverride777

+0

당신에게 도움이 되었습니까? –

+0

늦게 답장을 드려 죄송합니다. 나는 휴일에 있고 오늘까지 시간이 없다. 귀하의 답변은 훌륭하게 작동했으며 UI가없는 빈 사파리 페이지를 가지고이 문제를 재현 할 수도 없습니다. 도와 줘서 고마워. – crashoverride777