Hotwire Native의 Path Configuration은 뷰 컨텍스트, 프레젠테이션, 기능 조정을 지원하지만, 사용자 정의 속성 활용법은 명확히 다루지 않습니다. 본문은 이를 위한 두 가지 핵심 단계를 제시합니다.
1. 사용자 정의 속성 접근
Hotwire.config.pathConfiguration.properties(for: url)
: 이 메서드를 통해 주어진 URL에 매칭되는 Path Configuration 규칙에 정의된 모든 속성에 딕셔너리 형태로 접근할 수 있습니다.
2. 사용자 정의 속성을 활용한 웹 뷰 제어
사용자 정의 속성을 적용하려면 HotwireWebViewController
를 서브클래싱하여 커스텀 뷰 컨트롤러를 생성해야 합니다.
-
Path Configuration JSON 예시:
/login
패턴에navigation_bar_hidden: true
와 같은 사용자 정의 속성을 정의합니다.json { "settings": {}, "rules": [ { "patterns": ["/login"], "properties": { "navigation_bar_hidden": true } } ] }
-
커스텀 뷰 컨트롤러 구현 (
AppWebViewController
):viewWillAppear
메서드에서currentVisitableURL
에 대한 속성을 가져와properties["navigation_bar_hidden"]
값을 읽고, 이에 따라 내비게이션 바의 가시성을 조절합니다.swift import HotwireNative class AppWebViewController: HotwireWebViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) let properties = Hotwire.config.pathConfiguration.properties(for: currentVisitableURL) let navHidden = properties["navigation_bar_hidden"] as? Bool ?? false navigationController?.setNavigationBarHidden(navHidden, animated: false) } }
-
Hotwire 설정:
AppDelegate
등에서Hotwire.config.defaultViewController
를 설정하여 커스텀 뷰 컨트롤러가 기본적으로 사용되도록 합니다.swift Hotwire.config.defaultViewController = { url in AppWebViewController(url: url) }
이러한 접근 방식으로 개발자는 Hotwire Native의 Path Configuration을 확장하여 애플리케이션의 특정 요구사항에 맞춰 웹 뷰의 UI/UX를 유연하게 제어할 수 있습니다.