티스토리 뷰

Swift + iOS/CRUD

[ios] 스토리보드 없이 CRUD - List

군옥수수수 2017. 12. 19. 00:32

스토리보드 없이 CRUD - List


안녕하세요. 오늘은 저번 포스팅에 이어서 스토리보드 없이 CRUD 만들기, 그 중에서도 Create 즉 데이터를 생성하는 부분을 만들어보도록 하겠습니다.


이 포스팅에서는 스토리보드 없이 진행하는 과정이기 때문에 이전 포스팅을 반드시 읽고 와주시기 바랍니다.


그리고 이 시리즈의 포스팅에서는 테이블 뷰를 사용하는데 이에 대한 상세한 설명은 다루지 않고 있습니다. 이와 관련해서는 제가 작성해 놓은 글들을 참고해주시기 바랍니다.


그럼 바로 시작해보도록 하겠습니다.


1. 친구 목록

먼저 이전에 우리는 MainViewController.xib 파일에 하나의 테이블 뷰를 올려주었습니다. 이 테이블 뷰에서는 친구들의 목록, 즉 데이터를 전부 보여줄 것입니다.


이전에 포스팅한 간단한 테이블 뷰의 예제들에서는 스토리보드에서 테이블 뷰 위에 하나의 셀을 올려주고 시작했습니다. 하지만 오늘은 스토리보드를 전혀 사용하지 않고, 테이블 뷰 셀 역시 하나의 .xib파일로 빼서 따로 관리하도록 하겠습니다.


이렇게 하나의 파일로 따로 관리하는 이유는 셀을 스토리보드를 사용할 때 처럼 바로 올려서 사용하게 되면 이후에 셀을 재사용할 일이 생겼을 때 재사용하기가 힘들기 때문입니다.

 

Model

먼저 친구라는 클래스를 만들어 주어야합니다. 프로젝트 내에 Model이라는 그룹을 만들고 그 안에 Friend.swift 파일을 하나 생성해줍니다. 그리고 간단하게 이름과 전화번호 프로퍼티를 갖고 있는 클래스를 다음과 같이 작성합니다.

 

FriendCell

먼저 프로젝트 내에 View Controllers, Cell 이라는 이름으로 두개의 그룹을 만듭니다. 그리고 이전에 만들어 놓았던 MainViewController.swift파일과 MainViewController.xib파일은 View Controllers 그룹 안에 넣어줍니다. 그리고 Cell 그룹 안에서 FriendCell이라는 이름의 UITableViewCell 파일을 생성해줍니다.


반드시! Also create XIB file을 체크해주셔야 합니다.

그리고 FriendCell.xib파일에서 다음과 같이 두 개의 Label을 올려줍니다.


왼쪽 Label은 이름을, 오른쪽 Label은 전화번호를 보여줄 것입니다.

그리고 FriendCell.swift 파일에서는 두 Label을 연결한 뒤 다음과 같이 코드를 작성해줍니다.

  • 셀이 재사용될 때 재사용에 사용되는 셀의 정보가 화면에 나타나면 안되기 때문에 위와 같은 코드를 작성합니다. 자세한 사항은 이와 관련해서 작성한 저의 글을 참고해주세요. Custom Cell을 재사용할 때 생기는 문제점
Reuseable Identifier

스토리보드를 사용할 때도 항상 해왔듯이 우리는 셀에 identifier를 지정해주어야 합니다. 하지만 이러한 identifier를 직접 문자열의 값으로 넣어주게 되면 실수가 발생할 수 있고 값이 바뀌었을 때 일일히 모두 바꿔주어야 하기 때문에 유지보수에도 적합하지 않은 방법입니다.


이러한 문제를 해결하기 위해 우리는 extension을 사용할 것입니다. 먼저 Extension이라는 그룹을 만들고 그 안에 NSObject + identifier라는 이름으로 하나의 .swift 파일을 만듭니다. 그리고 다음과 같이 코드를 작성합니다.

먼저 모든 객체가 상속받는 NSObject 클래스에 reuseableIdentifier라는 이름의 String 타입의 static 변수를 추가할 것입니다. 이렇게 되면 모든 객체에서 해당 변수를 사용할 수 있게 됩니다.


그리고 String(describing: self)를 반환함으로써 호출하는 자신의 이름을 식별자로 사용하기 때문에 중복될 일도 없습니다. 즉 셀의 identifier를 사용할 때는 FriendCell.reuseableIdentifier를 사용하면 됩니다.

 

Register Cell

스토리보드를 사용할 때와 다르게 우리는 위에서 만들어준 셀을 직접 테이블 뷰에 등록해주는 작업을 코드로 작성해주어야 합니다. 해당 작업은 친구들의 목록을 보여주는 테이블 뷰가 존재하는 MainViewController.swift에서 작성해줍니다.


그전에 먼저 MainViewController.xib 파일에 있는 테이블 뷰를 연결해주고 기본적인 프로토콜을 준수하고 메소드들을 구현해 줍니다. 그리고 UIBarButtonItem도 추가해줍니다.

 

그리고 이제 테이블 뷰에 셀을 등록해주는 코드를 viewDidLoad 안에 작성합니다.

  • 위에서 만든 FriendCellfriendsTableView에 등록하는 코드입니다.

Source : github

Next : [ios] 스토리보드 없이 CRUD - Create


마무리

오늘은 이렇게 이전에 간편하게 모델 클래스를 만들고 스토리보드를 사용한 방법이 아닌 직접 코드로 identifier 를 관리하고 셀을 등록하는 방법에 대해 알아보았습니다. 다음 포스팅에서는 데이터를 추가하는 Create를 구현해보는 시간을 갖도록 하겠습니다. 감사합니다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함