적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

분류 전체보기 568

[Swift iOS] 입력값을 받아와 tableView에 띄우기 - 데이터 내부 저장 방법 AppDelegate

modal 창을 띄워 입력값을 받아와 tableview에 띄우고 싶었는데 안되더라. 데이터가 왜 넘어가지 않는 것이야!!!! 받아올 수 없는 데이터에 씁쓸함을 안고 검색도 해봤지만 해답을 찾지 못하고 도서관에와 책을 뒤적뒤적거리다가 발견. 해결 방법은 'AppDelegate' 파일에다가 데이터를 저장할 배열 변수를 프로퍼티로 정의하는 것!! 배열 변수를 AppDelegate 클래스에 저장하는 것은 [ 접근성 / 데이터 보존 / 일관성 ] 크게 이 세 가지 이슈 때문이라고 한다. 나는 그냥 모달이나 테이블 뷰가 있는 뷰 컨트롤러 클라스에 배열 변수를 생성해 저장하고 불러오고 그랬는데, 이렇게 저렇게 아무리 해봐도 입력된 값이 테이블뷰에 뜨지 않는 것이었다ㅠㅠ 그 이유는 뷰 컨트롤러는 생명 주기가 길지 않아..

[Swift iOS] Custom UITableView 만들기

테이블뷰 하나만도 커스텀하게 만들기 쉽지 않구나 하는 걸 깨닫게 되었다. 테이블 뷰 굉장히 만만하게 봤는데.. 너 만만하지 않구나? ㅎㅎ 1. 테이블 뷰 추가하기 2. extension으로 UITableViewDataSource, UITableViewDelegate 추가해주기 3. section 갯수, 각 section 당 cell 갯수, 높이 및 각종 속성들 추가 4. UITextField() 이용해서 사용자 입력 받아오기 5. UITableView 속 cell 내용들 추가 기본 테이블뷰 추가해 화면에 띄우기 import Foundation import UIKit class AddScheduleViewController: UIViewController { let tableView = UITableVie..

[Swift iOS] modal presentation style 모달로 화면 띄우기

1. 모달로 뷰컨트롤러 띄우는 법 2. 모달 스타일 설정 3. 모달 크기 변경 뷰컨트롤러로 화면을 이동하는 방법은 여러가지가 있겠지만 가장 많이 쓰이는 방법으로 크게 두가지를 꼽을 수 있다. 네비게이션 컨트롤러로 옆으로 넘겨주는 방법과 let vc = NavViewController() self.navigationController?.pushViewController(vc, animated: true) 모달로 화면을 아래에서 위로 띄우는 방법. let vc = ModalViewController() vc.modalPresentationStyle = .automatic present(vc, animated: true, completion: nil) 여기서 modalPresentationStyle 은 기본으..

[Swift iOS] 상단 NavigationBar 설정

large title large title scroll시 기본 title로 만드는 법 self.navigationController?.navigationBar.prefersLargeTitles = true 참고 : wonhee - large title 투명 네비게이션바 만들기 //navigationBar color 뷰 컬러와 동일하게 맞추기 self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) //navigationBar bottom bolder line 제거하기 self.navigationController?.navigationBar.shadowImage = UIImage() navigation 버튼 설..

[Swift UIKit] All about UIButton()

let button = UIButton() 으로 initialize 해주기 이렇게 선언만 해줬을 때 기본 내장 속성으로는 네모난 투명 배경에 텍스트가 기본이라고 한다. 속성을 바꿔보자면 button.backgroundColor = .black // 버튼 색 바꾸기 button.layer.cornerRadius = 16 // 버튼 원으로 바꾸기 위한 속성. 버튼 크기/2 하면 될듯 button.layer.borderWidth = 1 // 테두리 굵기 설정 button.layer.borderColor = UIColor.white.cgColor // 테두리 색 설정(cgColor) button.setTitle("버튼", for: .normal) // 버튼 텍스트 설정 button.setImage("이미지", ..

[Swift iOS] UIImagePickerController로 사진첩에서 사진 가져오기

목표 : 라이브러리에서 사진을 가져와 배경화면에 띄우기. 가장 먼저 해야 할 일은 1. 리소스 접근 권한 설정 Info.plist 파일에서 Information Property List 에 새로운 항목으로 [Privacy - Photo Library Usage Description] 키를 추가 : 앱이 사용자의 카메라나 앨범 리소스에 접근하기 위해 필요한 권한. (카메라를 추가하고 싶다면 [Privacy - Camera Usage Description] 추가해면 된다.) 1. 사진첩을 띄울 UIButton() 만들기 2. 버튼 터치 시 실행될 uploadPhoto() 메서드 만들고 버튼 이벤트에 추가하기 3. extension으로 UIImagePickerControllerDelegate와 UINaviga..

신형 맥북 M1 칩 cocoapods 설치 _compatibility with M1 chip issue (+ Homebrew)

큰맘먹고 맥북을 장만했는데, 신형 M1칩을 사용하면서 오류가 많은 것 같다. 아직 M1이랑 호환이 잘 안되나봐ㅠㅠㅠ 많은 사람들이 비슷한 문제를 겪고 있는 것을 확인. sudo gem install cocoapods 하면 설치는 되는데 pod install 하면 에러가 난다. 그 대신에 다음과 같이 ffi를 먼저 설치해주고 sudo arch -x86_64 gem install ffi arch -x86_64 pod install 이렇게 해주면 설치가 잘 된다. (x86_64 is the 64-bit version of the OS 라고 하는데 갑자기 이걸 왜 굳이 써줘야 하는지는 의문) 설치가 잘 되었다고 뜨니깐 당연히 다 끝난줄알았는데? pod install은 된거같은데 Xcode 내에서는 해당 라이브러..

[Swift iOS] Open Weather Map API 사용해 날씨 데이터 불러오기

OpenWeatherMap 사이트 : openweathermap.org/api 요기서 필요한 API를 가져올 수 있는데, 나는 현재 날씨를 받아오기 위해 Current Weather Data를 받아왔다가 아직 구현할 필요는 없기만 혹시나 추후 날씨 예보도 추가하고 싶을까봐 One Call API로 바꿨다. One Call API 에는 현재 날씨, 예보, 과거 데이터가 다 포함되어 있고, 원하는 데이터만 불러올 수도 있기 때문에 범용을 위해 이걸 사용하는 것을 추천. API call : " https://api.openweathermap.org/data/2.5/onecall?lat=37.5683&lon=126.9778&exclude=minutely,alerts&appid={API key}&units=met..

[Swift iOS] calculate date 날짜 계산하기

swift 내장 Calendar를 사용해서 날짜를 계산하는 법을 알아보자. 1. D day 계산법 2. 기념일 계산법 let calendar = Calendar.current let currentDate = Date() let dateFormatter = DateFormatter() var daysCount:Int = 0 func calculateDays() { dateFormatter.dateFormat = "yyyy-MM-dd" let startDate = dateFormatter.date(from: "2020-09-13") daysCount = days(from: startDate) let hundred = calendar.date(byAdding: .day, value: 100, to: start..

728x90
반응형