|
@@ -1,5 +1,6 @@
|
|
(ns sample.core
|
|
(ns sample.core
|
|
- (:require [uikit.core :as uikit]))
|
|
|
|
|
|
+ (:require [uikit.core :as uikit]
|
|
|
|
+ [com.stuartsierra.component :as component]))
|
|
|
|
|
|
(def white (-> ($ UIColor)
|
|
(def white (-> ($ UIColor)
|
|
($ :whiteColor)))
|
|
($ :whiteColor)))
|
|
@@ -20,21 +21,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+(defrecord MainUI []
|
|
|
|
+ component/Lifecycle
|
|
|
|
+ (start [component]
|
|
|
|
+ (let [window (-> ($ UIWindow)
|
|
|
|
+ ($ :alloc)
|
|
|
|
+ ($ :initWithFrame (-> ($ UIScreen)
|
|
|
|
+ ($ :mainScreen)
|
|
|
|
+ ($ :bounds))))
|
|
|
|
+ nav (-> ($ UINavigationController)
|
|
|
|
+ ($ :new))]
|
|
|
|
+ (doto window
|
|
|
|
+ ($ :makeKeyAndVisible)
|
|
|
|
+ ($ :setRootViewController nav)
|
|
|
|
+ ($ :setBackgroundColor white))
|
|
|
|
+ (reset! uikit/current-top-controller nav)
|
|
|
|
+ ($ nav :setNavigationBarHidden true)
|
|
|
|
+ (uikit/nav-push (uikit/controller "Screen title" my-screen))
|
|
|
|
+ component))
|
|
|
|
+ (stop [component]
|
|
|
|
+ ))
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+(defonce system (atom {:ui (->MainUI)}))
|
|
|
|
+
|
|
(defn main []
|
|
(defn main []
|
|
- (let [window (-> ($ UIWindow)
|
|
|
|
- ($ :alloc)
|
|
|
|
- ($ :initWithFrame (-> ($ UIScreen)
|
|
|
|
- ($ :mainScreen)
|
|
|
|
- ($ :bounds))))
|
|
|
|
- nav (-> ($ UINavigationController)
|
|
|
|
- ($ :new))]
|
|
|
|
- (doto window
|
|
|
|
- ($ :makeKeyAndVisible)
|
|
|
|
- ($ :setRootViewController nav)
|
|
|
|
- ($ :setBackgroundColor white))
|
|
|
|
- (reset! uikit/current-top-controller nav)
|
|
|
|
- ($ nav :setNavigationBarHidden true)
|
|
|
|
- (uikit/nav-push (uikit/controller "Screen title" my-screen))))
|
|
|
|
|
|
+ (swap! system update component/start))
|
|
|
|
|
|
|
|
|
|
|
|
|