[SwiftUI] Navigation BackButton Custom
·
swiftUI
SwiftUI의 NavigationView를 사용하면서 Back버튼이 이전 뷰의 Title과 동일하게 바뀌는 것을 바꿔보고자 찾아보았다. BackButton 숨기는 방법DestinationView에.navigationBarBackButtonHidden(true)modifier를 추가한다. Custom Button 만드는 방법.navigationBarItems()를 활용해서 추가한다. 기존의 Back버튼과 동일하게 만들고 텍스트만 변경하려면@Environment(\.presentationMode) var presentationMode: Bindingvar backButton: some View { Button { self.presentationMode.wrappedValue.dismiss() ..
[swift] URLSession
·
swift
URLSessionURLSession은 애플에서 HTTP 통신을 위해 만든 것으로 특정 URL을 이용해서 데이터를 다운로드하고 업로드하기 위해 사용하는 API이다. URLSession의 종료기본 세션 : URLSession(configuration: .default)기본 세션은 일반적인 네트워크 요청을 수행하는 데 사용된다.기본적으로 디스크 기반의 캐시 및 쿠키를 지원한다.쿠키, 인증 정보 등을 자동으로 관리하고 유지한다.앱의 메모리에 캐시된 데이터는 자동으로 디스크에 기록된다.기본적으로 세션이 지속되지 않는데, 세션을 종료하면 쿠키와 캐시가 삭제된다.임시 세션 : URLSession(configuration: .ephemeral)임시 세션은 일회성 네트워크 요청에 사용된다.캐시, 쿠키, 자격 증명 등을..
[swift] Combine
·
swift
Combine Combine은 비동기 및 이벤트 기반 코드를 처리하기 위한 프레임워크로, Publisher-Subscriber 패턴을 기반으로 한다. Publisher 프로토콜은 시간이 지남에 따라 일련의 값을 전달할 수 있는 유형을 선언한다. 퍼블리셔에는 업스트림 퍼블리셔로부터 받은 값에 대해 작업하고 다시 퍼블리시하는 오퍼레이터가 있다. 퍼블리셔 체인의 끝에서 Subscriber는 요소를 수신할 때 해당 요소에 대해 작업을 수행한다. 퍼블리셔는 구독자가 명시적으로 요청하는 겨웅에만 값을 내보낸다. Publisher protocol Publisher { associatedtype Output associatedtype Failure: Error func subscriber(_ subscriber: S)..
[swift] File Manager
·
swift
File Manager FileManager 클래스는 파일 시스템에 대한 접근을 제공하여 파일 및 디렉토리를 관리하는 데 사용된다. 이 클래스는 파일 및 디렉토리를 생성, 복사, 이동, 삭제하고 파일 내용을 읽고 쓰는 등의 작업을 수행할 수 있다. FileManager는 Foundation 프레임워크에 포함되어 있다. File Manager 사용하기 1. 경로 접근 fileManager라는 이름을 가진 인스턴스를 생성한다. fileManager.urls의 for는 폴더를 정해주는 요소이다. in은 제한을 걸어주는 요소이다. let fileManager = FileManager.default let documentURL = fileManager.urls(for: .documentDirectory, in: ..
[swift] UNUserNotificationCenter
·
swift
UNUserNotificationCenter UNUserNotificationCenter 클래스는 iOS에서 로컬 및 원격 알림을 관리하는 클래스이다. 이 클래스를 사용하여 알림을 생성, 수정, 삭제하고, 사용자의 알림 설정을 관리할 수 있다. 알림 권한 요청 기본적으로 앱에서 nofitication이 오게 되면 백그라운드에서 push알림이 오기 때문에 delegate을 채택해줘야 한다. // AppDelegate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // foreground에서도 notif..