제 목표는 view1에서 view2로 또는 그 반대로 플립 애니메이션을 수행하는 것입니다. 전체보기가 아닌보기 만 뒤집기를 원합니다.맞춤 플립 애니메이션 segue - Swift 3
다음과 같이 설정하십시오. 내 스토리 보드에 navigationController에 포함 된보기 컨트롤러 (fromViewController)가 있습니다. 나는 두 번째 뷰 컨트롤러 (toViewController)에 segue를 그리고 커스텀 segue로 만들었다. 이제 플립 애니메이션을 추가하여 뷰 컨트롤러의 뷰를 왼쪽에서 오른쪽으로 그리고 오른쪽에서 왼쪽으로 뒤집을 수 있습니다. 앞으로 애니메이션이 이미 작동하지만 (fromViewController에서 toViewController로) 역방향 애니메이션이 작동하지 않습니다. 여기에 비슷한 질문을 많이했는데 내 요구에 맞는 대답을 찾을 수 없었습니다.
나는 누군가가 나를 도울 수 있기를 바랍니다.
맞춤 세그먼트의 클래스는 FlipSegue입니다.
import UIKit
extension UIViewController{
var isVisible: Bool{
return self.isViewLoaded && self.view.window != nil
}
}
class FlipSegue: UIStoryboardSegue {
override func perform() {
let fromViewController = self.source
let toViewController = self.destination
if fromViewController.isVisible{
UIView.transition(from: fromViewController.view, to: toViewController.view, duration: 1, options: .transitionFlipFromLeft, completion: nil)
}
else{
UIView.transition(from: toViewController.view, to: fromViewController.view, duration: 1, options: .transitionFlipFromRight, completion: nil)
}
}
}
참고 : 여기 내 코드입니다 toViewController가있는 navigationController의 일부가 아닙니다.
EDIT : 탐색 컨트롤러의 왼쪽에있는 UIBarButton을 탭하여 세그먼트를 수행합니다. Button은 FlipSegue 클래스에서 perform 함수를 호출합니다. 아마도 문제는 toViewController가 네비게이션 스택의 일부가 아니라는 것입니다. 그래서 그것을 탐색 스택에 추가 한 다음 뒤로 단추가 있고 표준 애니메이션을 사용하여 fromViewController로 돌아갈 수 있습니다. 그러나 이것은 제가 원한 것이 아닙니다.
"...하지만 역방향 애니메이션은 [작동하지 않습니까?]"그건별로 유용하지 않습니다. 무슨 일이야? 당신의 else 절은 발사되고 있습니까? 뷰가 바뀌었지만 애니메이션이 잘못 되었습니까? –
예 else 절이 실행 중이고 – user1895268
내가 요청한 다른 정보는 어떻게됩니까? 어서, 20 가지 질문을하지 마라! –