BOID
[iOS] 화면 전환하기 (1/4) - HooniOS 본문
안녕하세요 HooniOS입니다 :)
이번에는 앱을 사용할 때 기초이면서 꼭 필요한 부분에 대해 공부해보겠습니다.
기초이면서 꼭필요하고 중요한 부분이 뭐가 있을까요?
바로 화면전환 입니다!!!!!!!!!!
왜 꼭 필요하고 중요할까요? 그 이유는 앱에서는 단일 화면으로 구성된 앱을 보신 적이 있으신 적이 있으신지 모르겠지만, 거의 없습니다. (저는 아예 없어요....ㅎ)
화면 전환의 중요성
- 특히 콘텐츠를 제공하는 앱일 경우 목록 화면과 내용을 보여주는 화면 등 최소한 두 개 이상의 화면이 필요합니다
- 화면을 나누어 줘야 되는데 하나로 무리하게 표현하려고 하거나 한 화면에 표현할 수 있는 데도 무리하게 나누면 사용자가 불편하게 느끼기 때문에 화면을 나눌 때는 주의를 해야 합니다.
iOS에서 화면 전환 방식
- 앱에서 화면을 나눌 때에는 이들 화면 사이의 관계를 고려하여 적절한 방식으로 전환이 가능해야 합니다.
- 화면을 전환하는 방식에는 총 2가지가 있습니다.
- 소스코드를 통해 전환하는 방식
- 프로그래밍적으로 화면을 전환
- 동적으로 화면을 전환 - 스토리보드에서 제공하는 기능을 화면을 전환하는 방식
- GUI 방식으로 화면을 전환
- 정적으로 화면을 전환한다.
* 여기서 동적, 정적 방식의 차이는?
- 특정 상황에 대응을 할 수 있나를 기준으로 나뉜다.
- 동적인 방식은 특정상황에 대응 가능하지만 복잡하고, 어렵다.
- 정적인 방식은 일관적으로 적용되는 것이라 특정상황에 대응하기 어렵지만 구현하기 쉽다.
iOS에서 화면 전환 개념
* 분류기준
- 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 하기
- 커스텀 세그웨이 - 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출하여 화면 전환하기
- present, dismiss - 내비게이션 컨트롤러를 사용하여 화면 전환
- pushViewController, popViewController - 세그웨이를 사용하여 화면 전환하기
- 뷰 끼리 화면 전환하는 경우는 일반 뷰 컨트롤러들은 콘텐츠를 직접 배치하고 화면을 보여주는 역할을 하는 대신 다른 뷰 컨트롤러를 구조화 하는 역할을 하는데 이같은 뷰컨트롤러를 컨테이너 뷰 컨트롤러라고 합니다.
* 컨테이너 뷰 컨트롤러란?
- 하나의 뷰 컨트롤러이지만 @IBOutlet으로 정의할 수 있는 콘텐츠로 형성된 뷰 컨트롤러라고 이해하고 넘어가시면 될 거 같습니다.
- 뷰 끼리 화면 전환하는 방식을 제외한 나머지 대부분의 화면 전환은 모두 뷰 컨트롤러를 호출하는 방식입니다.
- 전환할 화면을 담당하는 뷰 컨트롤의 인스턴스를 생성하고, 이를 불러들여서 기존의 화면 위에 덮으면 화면이 전환된다는 뜻입니다.
- 화면을 전환할 때는 화면이 아예 다른 화면으로 교체되는 게 아니고 현재 화면이 있는 상태에서 그위에 화면이 덮어지는 모양이 됩니다.
- 인스턴스를 생성해서 불러가지고 화면이 전환되는 방식이라는 특성 때문에 기존 화면과 새로운 화면 사이에 서로 참조 관계가 성립이 되는 것을 알 수 있습니다.
* iOS에서 화면 전환에서 가지는 두 가지 특성
- 다음 화면으로 이동하는 방법과 이전 화면으로 이동하는 방법이 다릅니다.
- 화면 전환 방식에 따라 이전 화면으로 돌아가는 방법이 다릅니다.
- 첫 번째 특성을 다시 말해 기존 화면에서 새로운 화면으로 이동하면 +1이 되고 이전 화면으로 되돌아가는 방법은 -1이 된다.
- 만약 이전 화면으로 되돌아가는 방법을 사용하지 않고 계속해서 새로운 화면으로 +1 해주면 샌드위치 같은 구조가 만들어지는데, 이 때문에 충돌 문제가 발생할 수 있습니다.
- 두 가지 특성인 화면 전환 방식에 따라 방법이 달라지는데, 예를 들어 present방식에는 dismiss가 사용되고 내비게이션 컨트롤러 방식에는 pushViewController, popViewController가 들어갑니다.
- 새로운 화면이 표시되는 구조가 달라지는 특성을 가지고 있기 때문에 이전 화면으로 복귀할 때에도 이에 맞는 방식을 적용해야 한다.
- 만약 맞는 짝이 아니라 다른 방식을 이용해 이전 화면으로 돌아가려고 하면, 운이 좋으면 아무렇지 않지만 운이 나쁘면 앱이 다운되어 버립니다......ㅠㅠㅠ 그래서 무조건 방식에 맞게 되돌아가는 방식도 맞혀줘야 합니다!
기초만큼 중요한 부분이니 꼭 끝까지 읽어보시는 걸 추천드립니다 ㅎㅎ
다음 포스팅은 화면 전환 기법에 대해 위에 말한 분류 기준에 있는 방식에 대해 하나하나 살펴보겠습니다.
그럼 좋은 하루 보내세요 :)
'IOS 시작기' 카테고리의 다른 글
[iOS] 화면 전환하기 (3/4) - HooniOS (0) | 2021.03.23 |
---|---|
[iOS] 화면 전환하기 (2/4) - HooniOS (0) | 2021.03.22 |
[iOS] 뷰 컨트롤러의 상태 변화와 생명주기 (0) | 2021.03.19 |
[iOS] 뷰컨트롤러란? (0) | 2021.03.18 |
[iOS] 인터페이스의 표현 구조(윈도우, 뷰, 뷰컨트롤러에 대해) (0) | 2021.03.18 |