Views 1555 Votes 0 Comment 0
Atachment
Attachment '2'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Modal Views, Navigation Views 한꺼번에 닫기 (popToRoot)

다음과 같이 모달 뷰가 쌓여 있는 상황을 가정한다.


View-0 presents View-1 which presents View-2.


View-0 화면이 Root이고 View-2가 사용자가 보는 최상위 화면이다.

이 때, View-2에서 View-0으로 바로 이동하려고 할 때 기대되는 동작은 View-2가 애니메이션으로 pop 또는 dismiss 되면서 그 밑에 View-0 화면이 보이는 것이다. (이 과정에서 중간의 View-1는 보이지 않아야 한다.)


하지만, 다음과 같이 구현하면 View-2View-1 순서대로 보이면서 사라지거나 View-2 대신 View-1이 애니메이션으로 pop/dismiss 되면서 View-0 화면이 보이게 된다.


self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil)

Or

self.presentingViewController?.dismiss(animated: false, completion: nil)
self.presentingViewController?.dismiss(animated: true, completion: nil)


저 코드는 이렇게 동작할 것이다.

behavior_01.gif


하지만, 모달 뷰가 여러 개 겹쳐서 실행되고 있을 때 최상위 모달 뷰에서 다른 뷰를 보지 않고 최상위 뷰가 애니메이션 되면서 한번에 Root 화면으로 이동하고 싶을 때 이렇게 하면 된다.


@IBAction func dismissViewControllers(_ sender: UIButton) {
    var initialPresentingViewController = self.presentingViewController
    while let previousPresentingViewController = initialPresentingViewController?.presentingViewController {
        initialPresentingViewController = previousPresentingViewController
    }


    if let snapshot = view.snapshotView(afterScreenUpdates: true) {
        initialPresentingViewController?.presentedViewController?.view.addSubview(snapshot)
    }

    initialPresentingViewController?.dismiss(animated: true)
}


이렇게 잘 동작한다 ㅋㅋ

behavior_02.gif



[참고] https://stackoverflow.com/questions/54266115/how-to-dismiss-2-modal-view-controllers-without-weird-animation/54266224

[참고] https://stackoverflow.com/questions/3229755/dismissing-multiple-modal-view-controllers-at-once


?

List of Articles
No. Category Subject Author Date Views
25 Develop [Android Error] The number of method references in a .dex file cannot exceed 64K hooni 2016.11.10 887
24 Develop [ajax] 이벤트 코드 생성기 작업중.. ㅋㅋ file hooni 2013.04.23 7163
23 Develop [ajax] 샘플 코드와 한글처리에 대한 간단한 설명 hooni 2013.04.23 6868
22 Develop ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 file hooni 2015.01.01 1725
21 Develop XML, JSON, BSON, MSGPACK 장,단점 비교 file hooni 2017.01.11 2366
20 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 1015
19 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 1562
18 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18899
17 Develop SVN 초간단 사용하기 hooni 2014.02.28 7677
16 Develop SVN 명령어 (SVN command) hooni 2014.02.28 12202
15 Develop OPT와 CAS에 대한 자료.. (교수님 메일로 보내드린 자료..) file hooni 2013.04.23 13966
14 Develop OpenGL 강좌 사이트 모음 hooni 2013.04.23 9668
13 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15777
12 Develop macOS에 node, npm 설치하기 (homebrew) file hooni 2021.11.06 1449
11 Develop Mac OS 에 Jenkins 설치하기 (Homebrew) 2 file hooni 2017.03.15 8384
10 Develop Laravel 5 Failed opening required bootstrap/../vendor/autoload.php hooni 2018.01.24 1827
Board Pagination Prev 1 ... 49 50 51 52 53 Next
/ 53