第 11 章
表格列刪除、滑動動作、動態控制器與 MVC

If you spend too much time thinking about a thing, you'll never get it done. Make at least one definite move daily toward your goal.

– Bruce Lee

現在你已經知道要如何處理列的選取動作。而若是刪除動作呢?我們要如何從表格視圖中刪除一列呢?

這是在建立表格 App 時很常見的問題。選取、刪除、插入以及更新是進行資料處理時的基本操作。我們已經討論過如何「選取」一列,而在本章中我們將討論「刪除」。另外,我們會以 FoodPin App 示範幾個新功能:

  1. 使用者在表格列上水平滑動時,加入一個自訂動作按鈕。這即是所謂滑動帶出其他(Swipe for more )動作。
  2. 加入一個社群分享功能, 讓使用者可以輕鬆的分享餐廳資訊 。

本章要學習的內容很多,但是將會很有趣且很值得,我們開始吧 !

淺談模型-視圖-控制器

在進入到編寫程式的部分之前,我想先介紹「模型- 視圖- 控制器」(Model-View-Controller,簡稱 MVC)模型,這是使用者介面程式中最常被引用的設計模式。

我想讓本書儘可能地實作,因此鮮少討論到程式理論。不過,你無法不學「模型- 視圖- 控制器」,尤其當你的目標是建立很棒的 App,並且成為一位優秀有競爭力的程式設計師時更是如此。MVC 不是 iOS 程式的專利,若是你學過其他程式語言如 Java 或 Ruby 時, 應該都有聽過。這是一個強大的設計模式,可用於各式軟體應用,包括行動裝置 App 以及網頁程式的設計。

了解 Model-View-Controller

「這個在之後影響到許多程式框架的 MVC 核心,就是我所謂『外觀分離』,外觀分離背後的意義在於將領域物件,即對真實世界所理解的模式及外觀物件,也就是我們在畫面上看到的 GUI 元素,做明確的區隔。領域物件應該是能完全自己運作而不需要參照外觀,它們也能夠支援多個外觀,甚至是同時處理。這種方法也是 Unix 文化的重要一環, 而且持續到今天,許多的應用程式可以透過圖形或命令列的介面方式來操作。」

∼引述自Martin Fowler

不論你學習什麼程式語言,讓你成為優秀的程式設計師的一個重要觀念就是 關注點分離(Separation of Concern,簡稱 SoC)。這個觀念很簡單,關注點(Concerns ) 是有關軟體功能的差異性。此觀念鼓勵開發者將一個大的功能或程式,分成數個關注的領域,每個領域有自己的責任。我們在前面的章節內容中已說明過,在 iOS 中常見的委派模式就是 SoC 的其中一例。

此處的模型- 視圖- 控制器(MVC)也是 SoC 另外的範例,MVC 背後的主要核心觀念在於明確地將使用者介面分成三個區塊(或者是物件群組),每一個區塊負責相對應的功能。如同名稱所述,MVC 把使用者介面分成下列三個部分:

  • 模型(Model) – 模型是負責資料保存或者操作。它可以簡單的如一個陣列物件一樣, 用來儲存各式的表格資料。增加、更新或刪除就是操作的範例。在現實中,這些操作通常被稱為業務規則(Business Rules )。
  • 視圖(View) – 視圖是管理資訊的視覺呈現。例如:UITableView 以清單格式來呈現資訊。
  • 控制器(Controller) – 控制器是模型和視圖之間的橋梁。它將使用者在視圖上互動(例如:點擊)轉譯成在模型中要去執行的動作。舉例來說,使用者在視圖上點擊「Delete」按鈕後,接下來控制器就會觸發模型中的刪除動作,然後它會要求刷新視圖來反映資料的更新。
本文摘自《iOS 13 App程式設計實戰心法》一書,博碩授權轉載。如果你想更深入學習Swift程式設計和下載完整程式碼,你可以從AppCoda網站購買完整電子版。

results matching ""

    No results matching ""