1 min read

[iOS] Swift를 사용하여 iOS 뷰 변경하기

[iOS] Swift를 사용하여 iOS 뷰 변경하기
Photo by Lala Azizli / Unsplash

iOS 뷰 변경방법

아래는 가장 기본적인 View변경 방법이다.

if let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) {
    if let view : UIViewController = storyboard.instantiateViewController(withIdentifier: "HomeViewController") {
        // self.navigationController?.setViewControllers([view], animated: true)
        self.present(view, animated: true, completion: nil)
    }
}

View 변경주제에 코드가 너무 긴것같아서 방법을 찾아봤다.

Storyboard를 여러개 생성해서 작업할 때
class 이름과 Storyboard의 이름을 같게 한 후 작업한다.

View
    Controller
        HomeViewController.swift
    Storyboard
        HomeViewController.storyboard
// HomeViewController.swift
extension NSObject {
    static func classNameToString() -> String {
        return String(reflecting: self).components(separatedBy: ".").last!
    }
    func classNameToString() -> String {
        return String(reflecting: self).components(separatedBy: ".").last!
    }
}
class HomeViewController : UIViewController {
    ...
    static func storyboardInstance() -> HomeViewController? {
        let storyboard = UIStoryboard(name: classNameToString(), bundle: nil)
        return storyboard.instantiateInitialViewController() as? HomeViewController
    }
}
// 호출시
if let signupView = HomeViewController.storyboardInstance() {
    navigationController?.pushViewController(signupView, animated: true)
}

최대한 사용하기 편하도록 만들어 봤는데 이 방법 말고도 많은 방법이 있다.

Storyboard를 많이 만드는 경우 BaseView를 하나 만들어 그 안에 만들어두고 상속해서 쓰는것이 좋다.