第九章 刪除表格行,定制Action按鈕,MVC模式(一)

IOS 8編程入門--使用swift語言 專題目錄:

IOS 8 開發(fā)入門--序言(一)

IOS 8 開發(fā)入門--序言(二)

第一章:創(chuàng)建你的第一個App(一)

第一章:創(chuàng)建你的第一個App(二)

第二章:使用Storyboard設(shè)計用戶界面(一)

第二章:使用Storyboard設(shè)計用戶界面(二)

...............

第七章? 使用prototype Cell定制Table View(一)

第七章? 使用prototype Cell定制Table View(二)

第八章 表格單元格選取以及UIAlertController(一)

全書完整目錄

首先簡單說一下Model-View-Controller

現(xiàn)在你已經(jīng)知道如何處理表格行選中了。但是如何刪除呢?我們?nèi)绾螐腢ITableView刪除行呢?這是在創(chuàng)建基于表格的App時經(jīng)常提出的問題。選擇,刪除,插入和更新是處理數(shù)據(jù)的基本操作。我們已經(jīng)討論過選擇了。這一章我們討論刪除。另外,我們還會學(xué)到如何在用戶水平滑動表格行時增加一個操作按鈕

但是在進入編碼部分之前,我準(zhǔn)備為大家介紹Model-View-Controller(MVC)模型,這是在用戶界面編程中用的最多的設(shè)計模型。我盡力讓這本書以實戰(zhàn)為主,極少討論編程理論。但是,如果你想創(chuàng)建偉大的App或者成為合格的程序猿的話,你不可避免要學(xué)習(xí)Model-View-Controller。

MVC并不是IOS編程獨有的。如果你學(xué)過其他編程語言如Java或者Ruby的話你肯定也聽說過。這是一個非常有力的設(shè)計模式,可以用來設(shè)計各種各樣的移動應(yīng)用或者web APP

理解MVC模式

無論你學(xué)習(xí)哪種編程語言,分離的概念都能讓你變成更好的程序員。這個概念非常簡單。分離的概念鼓勵開發(fā)人員拆分大的功能或者將其拆分成不同的片段,每一個代碼片段負責(zé)各自的功能。我們在前面章節(jié)中介紹的在IOS編程中廣泛用到的代理模式就使用了分離的概念。

這里模型-視圖-控制器(MVC)模式是另外一種分離的例子。MVC的核心思想是將用戶界面分離成三個部分,每個部分負責(zé)不同的功能。正如MVC名字所暗示的,它將用戶界面分為三部分:

模型—模型負責(zé)存儲數(shù)據(jù)及對數(shù)據(jù)的操作。最簡單的模型可以是一個存儲表格數(shù)據(jù)的數(shù)組。增加,更新,刪除是這些數(shù)據(jù)的操作。在商業(yè)實踐,這些操作通常被稱為商業(yè)規(guī)則。

視圖—視圖負責(zé)管理信息顯示。例如,UITableView用列的形式顯示信息。UIButton出現(xiàn)在屏幕上是另一個例子。

控制器—控制器是模型和視圖之間的橋梁。它將用戶作用于視圖上的交互動作翻譯為模型上的操作。例如用戶點擊界面上的刪除按鈕。結(jié)果,控制器觸發(fā)了模型中的一個刪除操作。一旦完成這些操作,模型需要視圖刷新自己,這樣就能反應(yīng)數(shù)據(jù)模型的更新結(jié)果了。

為了讓你更好的了解MVC,讓我們用前面章節(jié)的Simple Table App作為例子。這個APP在表格中顯示了一系列餐館。如果你用可視化的形式展現(xiàn)出來,下圖說明了表格數(shù)據(jù)如何被顯示。


存放餐館名的數(shù)組對象就是模型。每一個表格的行映射一個餐館名數(shù)組中的元素。UITableView對象是一個真實的視圖,可以被用戶看到。它負責(zé)所有的顯示部分??刂破靼缪萘吮砀褚晥D和數(shù)據(jù)模型之間的橋梁。它管理表格視圖并且負責(zé)從模型中加載數(shù)據(jù)

從UITableView中刪除行

我希望你現(xiàn)在對模型-視圖-控制器有了更好的理解。讓我們轉(zhuǎn)移到代碼部分,看看如何從表格中刪除行。我們將會繼續(xù)開發(fā)FoodPin app(如果你還沒有完成這個項目,請回到前面的章節(jié)找到下載鏈接下載)并且添加刪除功能。

如果你理解了MVC模型,你可能對實現(xiàn)行刪除功能有自己的思路。這里我們有3個主要的工作需要做:

1 使能表格的“滑動刪除”功能,這樣才能刪除行

2 從數(shù)據(jù)模型中刪除合適的表格數(shù)據(jù)

3 重新加載表格來反應(yīng)表格數(shù)據(jù)的變化

使能滑動刪除功能

在IOS?app中,用戶通常水平滑動表格來顯示刪除按鈕。這需要我們實現(xiàn)UITableViewDataSource協(xié)議,該協(xié)議中有一個tableView(_:commitEditingStyle:forRowAtIndexPath:)方法。要使能表格的滑動刪除功能你需要實現(xiàn)該方法。如果該方法存在,表格將會自動顯示刪除按鈕。

在RestaurantTableViewController.swift中簡單添加下面的代碼

快速運行App測試一下。即使是該方法沒有具體實現(xiàn),但是你在滑動行時已經(jīng)可以看到刪除按鈕了。




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容