<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>UITabBarController on Kelly Dev</title><link>https://kelly-chui.github.io/tags/uitabbarcontroller/</link><description>Recent content in UITabBarController on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 11 Nov 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/uitabbarcontroller/index.xml" rel="self" type="application/rss+xml"/><item><title>SniffMEET. UITabBarController VIPER 컨테이너로 다루기</title><link>https://kelly-chui.github.io/posts/sniffmeet-dev-log-viper-tab-bar-container/</link><pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/sniffmeet-dev-log-viper-tab-bar-container/</guid><description>&lt;p&gt;VIPER 모듈을 사용하더라도, 직접 탭 바를 구현하지 않는 이상 &lt;code&gt;UITabBarController&lt;/code&gt;는 사용해야 한다. 일반적인 VIPER 화면처럼 View, Presenter, Interactor, Router를 모두 갖춘 독립 모듈로 보기엔 애매한 것 같다.&lt;/p&gt;
&lt;p&gt;특히 Interactor는 여기서 아무 의미가 없어보이고, Router는 &lt;code&gt;UITabBarController&lt;/code&gt;에 내장되어 있으니까&amp;hellip;&lt;/p&gt;
&lt;h2 id="모듈-빌더"&gt;모듈 빌더&lt;/h2&gt;
&lt;p&gt;router, interactor를 생성하고 이를 가지고 있는 presenter를 생성해서 뷰에 집어넣는 방식&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HomeModuleBuilder&lt;/code&gt;는 Home 화면에 필요한 VIPER 구성 요소를 한 곳에서 조립한다. ViewController를 만들고, Router와 Interactor를 생성한 뒤 Presenter에 주입한다. 마지막으로 NavigationFactory를 통해 화면을 &lt;code&gt;UINavigationController&lt;/code&gt;로 감싸서 반환한다.&lt;/p&gt;</description></item></channel></rss>