라벨이 iOS 독학인 게시물 표시

UINavigationController의 구성요소가 떠오르지 않는 사람을 위한 글

이미지
한 화면으로 이루어져 있는 앱을 만들다 보면, 다른 기능을 새로운 화면에 구성하고 싶은 생각이 듭니다. 이럴 때 필요한것이 화면 전화이죠. 화면 전환에는 여러가지 방법이 있으나, 그 중에 하나인, 가장 기본적이고 많은 기능을 제공하는 NavigationBar의 구성요소와 기능들에 대해 알아보도록 하겠습니다. 정의 및 구성요소 UINavigationBar 는 UINavigationController 라는 컨트롤러에 의해 제어됩니다. UIViewController 를 상속받아 구현되어 있기 때문에 UIViewController 가 가진 요소들을 가지고 있습니다. 가장먼저 UINavigationController 에 대해 먼저 알아보겠습니다. class UINavigationController : UIViewController UINavigationController 는 하나의 뷰 컨트롤러가 아닌 여러개의 뷰 컨트롤러의 계층을 만들고 관리 해주는 컨트롤러 입니다. 사용자가 상세화면이나 상위에 있는 화면이라고 생각하게 만들어주죠. 아래의 이미지를 보면서 생각해봅시다. 첫 화면에서 General 버튼을 누르면, General 페이지로 이동됩니다. 그려먼 화면의 타이틀이 바뀌고, 이전 페이지로 돌아갈 수 있는 버튼이 생기죠. 실제 화면이 쌓이고, 사라지는 순서를 관리하는 navigation stack 이 있습니다. 네비게이션의 첫 뷰 컨트롤러는 스택의 root인 root view controller 가 됩니다. 즉 네비게이션 컨트롤러는 root view controller 인 뷰컨트롤러가 필요하죠. 화면의 순서는 stack이 관리하지만, 사용자가 이 스택을 조종하기 위한 인터페이스로 UINavigationBar 가 있습니다. UINavigationBar 의 구성 요소는 위의 그림과 같습니다. 일반적으로 화면의 가장 상단에서 화면의 계층을 나타내 줍니다. 이전화면은 어디서 왔는지, 내가 할 수 있는 행동은 무엇인지, 이 페이지가 어디인지를 타이틀 등을

[iOS] 앱의 화면전환이 항상 헷갈릴 때 보는 글

이미지
앱을 만들다보면, SingleView App에서 어느새 여러개의 화면전환이 필요한 순간이 오게됩니다. 그런데 화면 전환의 방법과 종류가 너무 많아서 어느 순간에 어떤 화면을 써야하는지 계속 찾계되어 정리하게 되었습니다. 화면 전환할 때, 이전 코드를 복사해서 쓰고있는 사람 다른 사람의 코드를 복사해서 화면전환을 하는 사람 이것 저것 다 해보다가 내가 원하는 결과가 나온사람 미래의 나 가 읽으면 좋을 것 같습니다. 화면전환                     화면 전환이란 다른 화면이 등장하는 것을 말합니다. 버튼을 눌렀을 때 혹은 테이블 뷰나 컬렉션 뷰의 셀을 눌렀을 때 다른 화면이 나오는 경우이죠. 보통 많이 사용했던 방법을 나열 해보면 아래와 같습니다. viewController에서 다른 viewController를 present 해줍니다. NavigationController에 embed 시켜고 다른 viewController를 push 합니다. 스토리 보드에서 seque를 이용해서 control키를 누르고 드래그로 나타날 화면을 지정 해줍니다. 모달이나 전체화면과 같은 화면의 종류에 대해서는 이 글에서 다루지 않겠습니다. modalPresentationStyle에 대한 글을 나중에 정리하게 되면 추가 해놓겠습니다. viewController에서 다른 viewController 부르기 viewController를 만드는 방법에는 저는 보통 2가지를 사용합니다. 코드로 만들거나, storyBoard에 뷰컨트롤러를 그립니다. 코드로 뷰 컨트롤러를 만들었을 때, present의 인자로 내가 만든 viewController의 인스턴스를 넘겨줍니다. 그러면 화면 전환이 일어납니다. @IBAction func clickPresentByCodeButton ( _ sender: Any) { let myViewController = MyViewController () self .present(myViewC

dream iOS 아카데미에서 첫 4주 차 배운 내용들

이미지
dream iOS 아카데미에서 첫 4주 차 배운 내용들 맥북을 받고 기다리고 있는건 프로그래밍의 기초보다는 한 서비스를 만드는 방법의 시작이었습니다. Swift Playground 프로토 타이핑 iOS HIG Swift Playground 다운로드 링크 이 것 하나만 있으면 아이패드 본전을 뽑을 수 있다는? 강력한 프로그램 입니다. iOS만이 아니라 기초적인 프로그래밍적 사고를 할 수 있도록 도와주는 게임입니다. 각 스테이지를 클리어하면서 프로그래밍에 다가갈 수 있는 좋은 교육도구입니다. 저희도 공부할 때에 그냥 하세요 했던 것은 아니고 동영상을 참고할 수 있도록 첨부해주셨습니다. 친절하게도 유투브에 모두 공개가 되어있기 때문에 공유 드립니다. 스위프트 하이 채널 여러분도 코딩배우기 1부터 시작해 보시죠! 프로토 타이핑 프로그래밍과 별개로 나는 어떤 앱을 만들 것인가에 대한 생각을 했습니다. 페르소나, ADS 와 같은 것에 대해 공부했습니다. 그러면서 또한 나는 어떤 앱을 만들까 그려보기도 했습니다. 피그마, 스케치, Xds 가리지 않고 사용방법은 웹에 물어물어 익혀서 했습니다. 중요한건 나의 생각의 구체화 하는 것 이었으니까요. 실제 구현가능 여부는 중요하게 생각하지는 않았습니다. iOS HIG (Human Interface Guidelines) iOS앱 개발의 경전이라 불리며, 개발하기전에 꼭 꼭 두번, 세번 읽어야 한다고 하셨습니다. 사용자를 위한 디자인 가이드라고 생각하시면 됩니다. 저도 한 번만 빠르게 읽었는데 기회가 된다면 번역작업까지 할 수 있었으면 좋겠습니다. 양이 좀 많지만 막 너무 어려워서 시간을 들여야 하는 부분은 아니기 때문에 꼭 꼭 읽어보세요! HIG 링크 정리 이렇게 처음 한달은 앱 개발에 필요한 기초체력에 대핸 설명을 듣고 방향을 정하는 작업을 했습니다. 혹시 dreamin iOS Academy에 참여했더라면 나도 앱을 만들 수 있었