BOID

[iOS] 화면 전환하기 (1/4) - HooniOS 본문

IOS 시작기

[iOS] 화면 전환하기 (1/4) - HooniOS

HoonIOS 2021. 3. 22. 10:35

안녕하세요 HooniOS입니다 :)

이번에는 앱을 사용할 때 기초이면서 꼭 필요한 부분에 대해 공부해보겠습니다.

기초이면서 꼭필요하고 중요한 부분이 뭐가 있을까요?

 

 

바로 화면전환 입니다!!!!!!!!!!

 

왜 꼭 필요하고 중요할까요? 그 이유는 앱에서는 단일 화면으로 구성된 앱을 보신 적이 있으신 적이 있으신지 모르겠지만, 거의 없습니다. (저는 아예 없어요....ㅎ)

 

화면 전환의 중요성

- 특히 콘텐츠를 제공하는 앱일 경우 목록 화면과 내용을 보여주는 화면 등 최소한 두 개 이상의 화면이 필요합니다

- 화면을 나누어 줘야 되는데 하나로 무리하게 표현하려고 하거나 한 화면에 표현할 수 있는 데도 무리하게 나누면 사용자가 불편하게 느끼기 때문에 화면을 나눌 때는 주의를 해야 합니다.

iOS에서 화면 전환 방식

- 앱에서 화면을 나눌 때에는 이들 화면 사이의 관계를 고려하여 적절한 방식으로 전환이 가능해야 합니다.

- 화면을 전환하는 방식에는 총 2가지가 있습니다.

  • 소스코드를 통해 전환하는 방식
    - 프로그래밍적으로 화면을 전환
    - 동적으로 화면을 전환
  • 스토리보드에서 제공하는 기능을 화면을 전환하는 방식
    - GUI 방식으로 화면을 전환
    - 정적으로 화면을 전환한다.

* 여기서 동적, 정적 방식의 차이는?

  - 특정 상황에 대응을 할 수 있나를 기준으로 나뉜다.

  •   동적인 방식은 특정상황에 대응 가능하지만 복잡하고, 어렵다.
  •   정적인 방식은 일관적으로 적용되는 것이라 특정상황에 대응하기 어렵지만 구현하기 쉽다.

iOS에서 화면 전환 개념

* 분류기준

  • 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 하기
    - 커스텀 세그웨이
  • 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출하여 화면 전환하기
    - present, dismiss
  • 내비게이션 컨트롤러를 사용하여 화면 전환
    - pushViewController, popViewController
  •  세그웨이를 사용하여 화면 전환하기

- 뷰 끼리 화면 전환하는 경우는 일반 뷰 컨트롤러들은 콘텐츠를 직접 배치하고 화면을 보여주는 역할을 하는 대신 다른 뷰 컨트롤러를 구조화 하는 역할을 하는데 이같은 뷰컨트롤러를 컨테이너 뷰 컨트롤러라고 합니다.

* 컨테이너 뷰 컨트롤러란?

- 하나의 뷰 컨트롤러이지만 @IBOutlet으로 정의할 수 있는 콘텐츠로 형성된 뷰 컨트롤러라고 이해하고 넘어가시면 될 거 같습니다.

- 뷰 끼리 화면 전환하는 방식을 제외한 나머지 대부분의 화면 전환은 모두 뷰 컨트롤러를 호출하는 방식입니다.

- 전환할 화면을 담당하는 뷰 컨트롤의 인스턴스를 생성하고, 이를 불러들여서 기존의 화면 위에 덮으면 화면이 전환된다는 뜻입니다.

- 화면을 전환할 때는 화면이 아예 다른 화면으로 교체되는 게 아니고 현재 화면이 있는 상태에서 그위에 화면이 덮어지는 모양이 됩니다. 

- 인스턴스를 생성해서 불러가지고 화면이 전환되는 방식이라는 특성 때문에 기존 화면과 새로운 화면 사이에 서로 참조 관계가 성립이 되는 것을 알 수 있습니다.

 

* iOS에서 화면 전환에서 가지는 두 가지 특성

  • 다음 화면으로 이동하는 방법과 이전 화면으로 이동하는 방법이 다릅니다.
  • 화면 전환 방식에 따라 이전 화면으로 돌아가는 방법이 다릅니다.

- 첫 번째 특성을 다시 말해 기존 화면에서 새로운 화면으로 이동하면 +1이 되고 이전 화면으로 되돌아가는 방법은 -1이 된다.

- 만약 이전 화면으로 되돌아가는 방법을 사용하지 않고 계속해서 새로운 화면으로 +1 해주면 샌드위치 같은 구조가 만들어지는데, 이 때문에 충돌 문제가 발생할 수 있습니다.

- 두 가지 특성인 화면 전환 방식에 따라 방법이 달라지는데, 예를 들어 present방식에는 dismiss가 사용되고 내비게이션 컨트롤러 방식에는 pushViewController, popViewController가 들어갑니다.

- 새로운 화면이 표시되는 구조가 달라지는 특성을 가지고 있기 때문에 이전 화면으로 복귀할 때에도 이에 맞는 방식을 적용해야 한다.

- 만약 맞는 짝이 아니라 다른 방식을 이용해 이전 화면으로 돌아가려고 하면, 운이 좋으면 아무렇지 않지만 운이 나쁘면 앱이 다운되어 버립니다......ㅠㅠㅠ 그래서 무조건 방식에 맞게 되돌아가는 방식도 맞혀줘야 합니다!

 

 

기초만큼 중요한 부분이니 꼭 끝까지 읽어보시는 걸 추천드립니다 ㅎㅎ

 

다음 포스팅은 화면 전환 기법에 대해 위에 말한 분류 기준에 있는 방식에 대해 하나하나 살펴보겠습니다.

 

그럼 좋은 하루 보내세요 :)

반응형
Comments