[iOS] Swift를 사용하여 iOS 뷰 변경하기
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를 하나 만들어 그 안에 만들어두고 상속해서 쓰는것이 좋다.