티스토리 뷰
생각보다 뷰를 이동하거나 닫는 방법은 여러가지가 있습니다.
그래서 저도 헷갈리고 잘 까먹어서 모아보았습니다.
참고로 진짜 모아만 둔거라 설명은 따로 없습니다.
보통 뷰는 수직으로 쌓이는 샌드위치라고 생각하면 이해하기 쉽더라고요.
* ViewController
func moveView(viewController : UIViewController,viewName : String){
let vc = viewController.storyboard!.instantiateViewController(withIdentifier: viewName)
vc.modalPresentationStyle = .fullScreen
viewController.present(vc, animated: true)
}
* ViewController를 배경을 투명하게 해서 데려오고 싶은 경우
func moveView(viewController : UIViewController,viewName : String){
let vc = viewController.storyboard!.instantiateViewController(withIdentifier: viewName)
vc.modalPresentationStyle = .overFullScreen //요기만 다름
viewController.present(vc, animated: true)
}
* NavigationViewController
func goNextController(viewName : String){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: viewName)
self.navigationController?.pushViewController(vc, animated: true)
}
* 모든 뷰 닫기 (맨 아래 화면으로 이동)
func finishViews(viewController : UIViewController){
let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
let window = windowScene?.windows.first
window?.rootViewController?.dismiss(animated: true, completion: {
print("End All View")
})
}
* 만약 일반뷰가 닫히면서 다른 NavigationViewController로 이동해야하면?
self.dismiss(animated: true){
guard let homeVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") else { return }
GlobalDefine.MAIN_NAVIGATE_CONTROL?.pushViewController(homeVC, animated: true)
}
//GlobalDefine.MAIN_NAVIGATE_CONTROL : navigationcontroller 선언해서 가져오면 됩니다.
// 메인이 되는 뷰에서
GlobalDefine.MAIN_NAVIGATE_CONTROL = self.navigationController
* 앱 완전 종료
func closeApp(){
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
exit(0)
}
}
뭔가 알아두면 편해서 올려봅니다.
도움이 되었으면 좋겠네요.
오늘도 파이팅입니다~
후일담
생각보다 편하게 잘쓰고 있어서 포스팅 하려하니까 이미 있었다는 점에 놀랐다
'iOS개발 > Swift 기본' 카테고리의 다른 글
Swift 화면 자동 회전 막기 (0) | 2022.12.22 |
---|---|
Swift UIViewController 이동할 때 값 전달하기 (0) | 2022.12.15 |
Swift 반복 이벤트 설정 (Timer) (0) | 2022.12.09 |
Swift UserDefaults로 간단한 데이터 저장하기 (0) | 2022.12.07 |
Swift Toast 메세지 만들기 (0) | 2022.11.22 |
댓글