1. StoryBoard 사용하기

새로운 프로젝트를 만들고 Master-Detail Application으로 Project를 생성한다. 


아래와 같이 기본적인 Master Page를 만들어 주고, + 를 누르면 시간이 list에 추가된다. 이 상태에서 리스트의 아이템을 선택하면 Detail page로 넘어 간다.




프로젝트 트리는 다음과 같이 구성되어 있다. 각 Scene마다 View Controller가 하나씩 생성되는 것을 볼 수 있다.



각 Controller를 자세히 보면 UINavigationController의 Master Controller가 있고  그 다음 UITableViewController를 상속 받은 Master 와 UIViewController를 상속 받은 Detail Controller가 있다.


2. Table View

iOS에서 Table View는 다양하게 많이 사용되어진다. 사용법을 익혀 놓으면 좋다. 아래의 상속 관계에서 UIScrollView를 상속 받은 것이 UITalbeView이다. TableView는 세로 방향으로 제한을 시키고 반복적인 컨텐츠를 전제로 최적화 시켰다.


UIKit의 클래스 계층도는 아래와 같다. 


테이블 뷰는 다음과 같은 종류의 것들이 있다. Custome하게 만들 수도 있다.

(TableView에 대한 자세한 사항은 Apple Document를 보면 자세하게 나와 있다.


https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451



TableView는 2가지 Style이 있다.



Table은 Header, Footer, Cell등으로 이루어 지며 이를 포함하고 있는 Section은 하나의  테이블 안에 여러개 존재 할 수 도 있다.

TableView를 Control하기 위해서는 TableViewController를 사용하여 Data를 넣어 주어야 한다.


각 Section에는 row 개수를 설정해 주고 셀의 값을 설정해 주어야 한다. 아래 그림은 Section을 3개 설정하고 각각 1, 2, 3개의  Row를 설정한 것이다.


아래의 코드는  Section을 2 개 만들고, 각 Section의 Row를 10개 씩 생성하는 코드 이다. 




table view의 섹션 header에 이름을 추가하거나 image를 추가하기 위해서는 다음과 같은 함수를 사용한다.

viewForHeaderInSection을 사용하여 image를 추가할 수도 있다.


아래와 같이 셀에 이미지를 추가하기 위해서는 cellForRowAtIndexPath에 imageView에 image를 넣어 주면 된다.




3. Navigation

아래와 같이 Storyboard에서 연결선을 Seque way라 한다. 이러한 Seue도 하나의 Obejct 다.


코드를 보면 다음과 같이 설정이 되어 있는 것을 볼 수 있다. seque를 확인하고 showDetail이라는 segue가 맞으면 이전 table view의 선택한 row의 정보를 detail view의 Detailitem에 설정해 주는 것이 된다.




detailItem은 id 값으로 어떠한 object를 넘겨도 상관없다. 필요한 객체를 넘겨 detailView에 표시해 주면 된다.


소스코드


tableviewtest.zip



table view guide: 

tableview-slide.pdf


권장도서


Posted by 빨간 양말