view controller
用 Swift 實作 Smalltalk MVC 大幅減少資料流的複雜度!
在 Apple 開發圈,我們都很熟悉所謂的 MVC 設計模式:把整個程式裡的物件分成 Model、View 與 Controller 三種不同的角色,讓它們分別負責解決不同的問題。Model 物件專責資料的封裝與相關的基礎行為,View 物件代表使用者看得到的介面元件,而 Controller 物件負責把 [...]
ViewController 轉場進階指南:進一步創建絢麗的轉場動畫
今天,我們會客製由一個視圖控制器 (ViewController) 轉場到另一個的轉場動畫。 為什麼會想要寫這個主題呢?過去,我花了很多時間去了解視圖控制器之間的轉換。遺憾的是,目前線上鮮有能簡單說明視圖控制器動畫轉場的教程。 因此,我決定寫幾篇文章,教大家用最簡單的方法,創建令人驚艷的轉場動畫。而這篇文章會比前一篇更進階。 [...]
ViewController 轉場初階指南:簡單打造酷炫的轉場動畫
今天,我們會客製由一個視圖控制器 (ViewController) 轉場到另一個的轉場動畫。 為什麼會想要寫這個主題呢?過去,我花了很多時間去了解視圖控制器之間的轉換。遺憾的是,目前線上鮮有能簡單說明視圖控制器動畫轉場的教程。 因此,我決定寫幾篇文章,教大家用最簡單的方法,創建令人驚艷的轉場動畫。 [...]
善用狀態機架構 大幅簡化 View Controller !
我們常常會碰到一個 View Controller 要處理不同狀態的情況,比如說,它本身就提供了編輯與非編輯狀態。如果資料是從網路 API 抓回來的話,那可能要處理載入與錯誤狀態;如果資料缺乏內容的話,也許還要加上空白狀態。這些狀態每一個在處理的事情可能很簡單,但如果全部都丟給同一個 [...]
利用 Container View Controller 拆開職責 視圖控制器不再複雜又臃腫!
視圖控制器 (View Controller) 這個元件提供基本構建塊,作為我們在 iOS 開發中構建 App 的基礎。在 Apple MVC 世界中,它是視圖 (View) 和模型 (Model) 之間的橋樑,充當兩者之間的協調者。控制器是一個觀察者,針對模型的更改作回應,然後更新視圖;並從使用 Target [...]
Massive View Controller 重構: Swift Extension 整理術
Extension 是 Swift 裡用來延伸既有型別的東西。透過 Extension,當我們想為某個型別加功能的時候,就可以不用把新的功能寫在該型別的主體裡面。比如說,如果我們想為 Cat 增加一個 purr() 方法的時候,可以這樣寫: class Cat { func meow() { print("Meow!") } } extension [...]
Massive View Controller 重構:Coordinator 模式與 Flow Controller
在上一篇文章中,我們用了依賴注入的技巧,來將 View Controller 與 Model Manager 之間的耦合解開。然而,View Controller 的依賴並不只是這樣而已,View Controller 與 View Controller 之間的依賴更為常見。 比如說,當要在 View Controller 之間傳遞資料的時候,Apple 會告訴我們要這樣寫: [...]
Massive View Controller 重構:透過依賴注入 (Dependency Injection) 減輕職責
View Controller 可以說是 iOS 開發裡的核心物件。這不只是因為它佔據了 MVC (Model-View-Controller) 中的中心位置 Controller,還因為 UIKit 團隊有意推動場景導向的設計。UIKit 本身是以當時的 AppKit 為基礎,針對行動系統所重新設計出來的一個框架。在原本的 AppKit 裡面,MVC [...]
你也可以自訂搖動還原 (Shake to Undo) 的功能?一起來拆解並實作吧!
在 iOS 上編輯內容的時候,如果要還原或重做步驟的話,通常可以透過搖動來呼叫出一個還原的警告: 這個搖動還原 (Shake to Undo) 功能在 UITextView 或者 UITextField 等文字編輯的 view 上是內建的,但大多數其他的 view 都沒有預設實作。還好,UIKit 其實已經幫我們做好了從動作偵測到顯示警告的部分,我們只需要提供第一響應者 [...]
利用 Swift Generic 建置可重複使用的 UITableViewController!
TableView Controller 是一個不可或缺的 UIKit 元件,幾乎每個 iOS App 都會用到它來顯示列表中的數據集合。當我們想要在 UITableViewController 中顯示不同類型的數據時,通常都會創建一個新的子類來顯示相關類型的數據。這種方法可行沒錯,但如果我們的 App 中有許多不同類型的數據,則可能導致重複和維護困難。 [...]