일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 그래프
- kotlin
- 어플리케이션
- library
- PyQt5
- Swift
- ios
- Apple
- androidstudio
- cocoapods
- UITableView
- Xcode
- UIKit
- alamofire
- button
- Storyboard
- charts
- 라이브러리
- ui
- modal
- UIButton
- graph
- Chrats
- Android
- 개발
- PyQt
- 개발자
- TableView
- Chart
- Python
Archives
- Today
- Total
Jiwift
[iOS/Swift] Root ViewController 변경하기, Root 화면 바꾸기, 'windows' was deprecated in iOS 15.0 본문
iOS Dev/Swift
[iOS/Swift] Root ViewController 변경하기, Root 화면 바꾸기, 'windows' was deprecated in iOS 15.0
지위프트 2023. 10. 16. 22:15반응형
Root View를 변경하기 위해서 사용했던 코드 두가지 방법을 공유합니다. 설명은 따로하지 않고, 제가 기록용으로 남기기 위해서 작성해둡니다. 응용을 통해서 원하는 방식으로 구현하세요...!
import UIKit
// MARK: - UIWindow의 rootViewController를 변경하여 화면전환
internal func changeRootViewController(newStoryboard: String, nextViewController: String) {
DispatchQueue.main.async {
let newStoryboard = UIStoryboard(name: newStoryboard, bundle: nil)
let newViewController = newStoryboard.instantiateViewController(identifier: nextViewController)
if let window = UIApplication.shared.windows.first {
window.rootViewController = newViewController
UIView.transition(with: window, duration: 0.5, options: .transitionCrossDissolve, animations: nil)
}
return
}
}
기존에 사용하던 코드입니다. 다양한 방법이 있지만 제가 사용하던 방법 그대로 공유드립니다. 원하는 방식으로 조합해서 사용하시면됩니다.
newStoryboard = 스토리보드가 여러개인 상황에 필요한 변수 해당 ViewController가 있는 Storyboard를 알려주세요.
nextViewController = 원하는 ViewController 클래스 이름을 알려주세요.
아래는 Storyboard 없이 작업하면서
"'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead"
에러를 대신하기 위해 작성한 코드입니다.
import UIKit
// MARK: - 현재 RootViewController를 새로운 화면으로 변경
static internal func changeRootViewController(currentView: UIView, controller: UIViewController) {
DispatchQueue.main.async {
currentView.window?.rootViewController = controller
return
}
}
현재 View의 상위 ViewController를 새로운 ViewController로 변환하는 코드입니다. 함수를 만들 때 UIViewController 자리에 UINavigationController를 넣어서 응용할 수 있습니다. import UIKit을 해줍니다.
반응형