목록ios (85)
BOID
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baAg9C/btq0TvkIvtQ/pV5L8OIu4I23PbQ6kDZHk0/img.jpg)
안녕하세요 HoonIOS입니다 :) 저번 시간에 뷰끼리 화면 전환 뷰 컨트롤러를 통한 화면 전환을 알아봤습니다. 이번 시간에는 내비게이션 컨트롤러를 이용한 화면 전환에 대해 알아보겠습니다. 내비게이션 컨트롤러의 정의 및 특징 - 뷰컨트롤러의 특별한 종류로, 계층적인 성격을 띠는 콘텐츠 구조를 관리하기 위한 컨트롤러입니다. - 뷰컨트롤러의 전환을 직접 컨트롤하고, 앱의 내비게이션 정보를 표시하는 역할을 할 뿐만 아니라 화면 전환이 발생하는 뷰 컨트롤러들의 포인터를 스택으로 관리하여 원하는 화면에 접근을 쉽게 합니다. * 스택인란? - LIFO(선입후출) 방식으로 제일 나중에 메모리에 들어온 데이터가 제일 먼저 나가는 방식 - 차곡차곡 쌓여지는 방식이라고 생각을 하면 됩니다. - 내비게이션 컨트롤러는 뷰 컨..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NMxn7/btq0NvrxxW3/sZtA8smZIlkMlxQzgmhjkK/img.jpg)
안녕하세요 HooniOS입니다 :) 저번 시간에 앱에서 화면 전환의 중요성, 화면 전환의 종류, 화면 전환 시 주의할 점에 대해 알아봤는데요! 혹시 안보고 오셨다면 여기를 클릭해 주셔서 읽고 오시는 걸 추천해 드립니다. 이번 포스팅에는 화면 전환 기법 2가지를 알아보겠습니다. 첫 번째는 뷰를 이용한 화면 전환, 두 번째는 뷰 컨트롤러 직접 호출에 의한 화면 전환에 대해 알아보겠습니다. 화면 전환 기법 첫번째: 뷰를 이용한 화면 전환 - 하나의 뷰 컨트롤러 안에 두 개의 루트 뷰를 준비한 다음 상황에 따라 뷰를 적절하게 교체해주는 방법이다. - 커스텀 세그웨이를 이용해서 뷰만 전환할 수 있다. - 위그림에 서 UIImageView끼리 전환할 수 있는 게 뷰를 이용한 화면 전환입니다. - 뷰를 바꿔치기도 뷰..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJXuuU/btq0LOyuxb9/7rOFNVKpKA2bkfPy7YzdQ0/img.jpg)
안녕하세요 HooniOS입니다 :) 이번에는 앱을 사용할 때 기초이면서 꼭 필요한 부분에 대해 공부해보겠습니다. 기초이면서 꼭필요하고 중요한 부분이 뭐가 있을까요? 바로 화면전환 입니다!!!!!!!!!! 왜 꼭 필요하고 중요할까요? 그 이유는 앱에서는 단일 화면으로 구성된 앱을 보신 적이 있으신 적이 있으신지 모르겠지만, 거의 없습니다. (저는 아예 없어요....ㅎ) 화면 전환의 중요성 - 특히 콘텐츠를 제공하는 앱일 경우 목록 화면과 내용을 보여주는 화면 등 최소한 두 개 이상의 화면이 필요합니다 - 화면을 나누어 줘야 되는데 하나로 무리하게 표현하려고 하거나 한 화면에 표현할 수 있는 데도 무리하게 나누면 사용자가 불편하게 느끼기 때문에 화면을 나눌 때는 주의를 해야 합니다. iOS에서 화면 전환 방..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b00LNH/btq0EDcpENr/u72LKY6EMzmknlZFlkubg0/img.png)
안녕하세요 HoonIOS입니다 :) 스위프트 버전 2.0을 발표하면서 스위프트는 프로토콜 지향 언어라고 말을 했는데요 그럼 프로토콜 지향 언어는 무엇인지에 대해 알아보겠습니다. 스위프트 표준 라이브러리를 보면 타입과 관련된 소스는 클래스 형태가 아니라 구조체 형태로 되어있는 것을 확인할 수 있습니다. 여기서 많은 분들이 의심을 가질께 구조체 형태면 상속이 되지 않는데 어떻게 그렇게 많은 기능을 구현하지?라는 의문을 가지 실수 있습니다. - 이 해답은 프로토콜. 익스텐션, 제네릭이 있습니다. ( 익스텐션이란? , 제네릭이란? ) 프로토콜이란? - 아직 프로토콜은 포스팅을 하지 않아서 간단히 설명해 보겠습니다. - 프로토콜에 정의한 프로퍼티, 메소드는 필수 정의해야 하는 조건입니다. - 타입마다 해당 프로토..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Jw77L/btq0qBmMBd3/FKkJKOZkofWa0hykY0Dho1/img.png)
안녕하세요, HoonIOS입니다. :) 저번 시간에 뷰 컨트롤러, 뷰에 대해 알아봤는데요, 그래서!!! 이번에는 뷰 컨트롤러의 상태가 켜지고 꺼지는 같은 상태변화와 생명주기를 알아보려고 합니다. 뷰 컨트롤러 상태변화 앱의 생명주기 - Not Running( 앱이 아직 실행되지 않았거나, 완전히 종료된 상태 ) - Inactive( 앱이 실행 중이지만 사용자로부터 event를 받을 수 없는 상태, 홈버튼을 누르면 앱이 background로 가는데 이상태를 의미합니다. ) - Active( 앱이 실행중이고 사용자로부터 event를 받을 수 있는 상태) - Suspend( 앱이 백그라운드 상태에 진입했을떄 다른 작업을 하지 않으면 Suspend 상태로 진입하게 됩니다, 메모리에 관련 데이터만 저장되어 있는 상..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k2COm/btq0oLQEVil/Nkz5uDYkppJOfOFRhNCpV0/img.jpg)
안녕하세요 HoonIOS입니다 :) 저번에는 뷰, 윈도우, 대략적인 뷰컨트롤러에 대해서 포스팅을 했는데요 이번에는 저번에 대략적으로 설명만 했는데 이번에는 뷰컨트롤러에 대해 그리고 네비게이션 컨트롤러, 테이블 뷰 컨트롤러 등 많은 뷰컨트롤러들이 있는데요. 각 컨트롤러에 대해 설명을 드리고자 합니다. 뷰 컨트롤러 - 뷰컨트롤러는 앱의 근간을 이루는 객체로 모든 앱은 최소한 하나 이상의 뷰컨트롤러를 가지고 있습니다.( 뷰컨트롤러는 앱의 기본중의 기본이니 개념 중요해요!) - 뷰컨트롤러의 주된 역할은 화면 구성 요소들, 즉 뷰를 관리 하는거지만 화면과 데이터 사이의 상호 작용관리까지 합니다. - 윈도우 객체로 부터 전달된 이벤트를 받아서 내부적으로 구현된 비즈니스 로직을 실행하고, 그 결과로 얻어진 데이터를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ojKRQ/btq0vPKxHZ2/Kkb68KhLQFXEynWCKq07M0/img.png)
안녕하세요 HoonIOS입니다 :)오늘은 iOS에서 중요한 기본중의 기본, 기초중의 기초인 인터페이스의 표현 구조인 윈도우, 뷰 뷰컨트롤러에 대해 알아보겠습니다. 윈도우와 뷰-모바일은 데스크톱과 달리 디바이스 스크린에 꽉 들어차는 하나의 화면을 표시할수 있으며, 다른 프로그램이 실행되면, 기존의 화면은 내려가고 그 자신을 새로운 화면이 대신 채우게 됩니다. (안드로이드는 멀티윈도우가 되는걸로 알고있지만 iOS는 한 화면에 두개의 프로그램을 동시에 사용을 못하는것을 생각하시면 됩니다.) 이런 일련의 과정을 구현하는데 윈도우, 뷰를 사용이 됩니다. - 그럼 이제 윈도우와 뷰의 개념에 대해 알아봐야겠죠!윈도우- iOS에서 디바이스의 스크린을 빈틈없이 채우기위한 객체로, 항상 유저 인터페이스 표현계층의 최상위에..
안녕하세요 HoonIOS입니다 :) 저번에는 제네릭의 개념과 제네릭 함수, 타입, 타입 확장에 대해 알아봤는데요, 이번에는 타입 제약 즉 특정 타입에 한정되게 제약을 두는 것과 프로토콜과 서브 스크립트에서 제네릭을 사용하는 것에 대해 알아보겠습니다. 제네릭의 타입 제약 - 앞 포스팅에서는 제네릭 타입 제약을 받지 않는 제네릭 함수를 구현해 보았는데, 만약 특정 타입에서만 한정되어야 할 처리가 있다던가, 제네릭 타입을 특정 프로토콜을 따른느 타입만 사용할 수 있도록 제약을 두어야 하는 상황이 있으면, 이때 타입 제약을 통해서 제약사항을 지정해 줄 수 있습니다. - 타입 제약은 클래스 또는 프로토콜에서만 줄수 있습니다. 이 말은 즉 타입 매개변수 자리에 사용할 실제 타입이 특정 클래스를 상속받는 타입이어야 ..