A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Kuhoku 于 2015-6-20 15:49 编辑

一行代碼一場夢,大家好我是阿達。上一次發帖經驗讓阿達深深的認識了許多的版規還有運作方式。所以以後的發文會考慮篇幅,字數。盡量只講關鍵技術,其實這是一個很糾結的問題,因為我希望帶給大家的是一個圖文並茂的解說,而不是單純的複製貼上程式碼。所以又花了一點時間把原本的流程重新規劃了一下。往後的帖子(包括這篇),阿達會盡量以一個觀念為主來解釋,而不是以一個元件的使用來解釋。希望各位觀眾老爺們會喜歡。

        另外關於字體的問題,阿達深知入境隨俗的重要,原本的規劃是打算進ios第十期(八月十七號),拼第二期招生(七月十號) 因為時間充裕的關係就慢工出細活的慢慢寫。結果前幾天得知開班時間整整提早了兩個星期!(八月二號開課,六月二十六號)結果變成說每一篇都要趕工生產,剩下三天的時間要寫完十篇技術文,還要再用剩下三天來完成筆試面試...我都覺得我簡直高產似母豬啊…(遠望)。如此一來也就沒又辦法再顧慮字體的問題了~在這裡跟觀眾老爺們道歉。

        今天我們要談的是關於表格列,自訂動作,以及MVC。在這篇當中呢,將為之前的項目中加入刪除列表的功能,還有導覽控制器,會讓一個單純的表格瞬間感覺不同唷!

        在開始之前我想先介紹一下MVC,也就是Model,View,Controller,是使用這介面程式設計中最常被引用的設計模式。MVC並不是iOS的專利,如果曾經學過JAVA或是RUBY的話對他應該也不陌生,這是一個強大的設計模式,用於各種軟體的應用。

        無論各位小夥伴們學習的是什麼語言,讓你成為優秀的程式設計師的一個重要觀念就是『關注點分離』 Separation of Concern 簡稱 SoC。這個觀念其實很簡單,關注點(Concern)就是有關軟體功能的差異性。這個觀念是鼓勵開發者將一個大的功能或是程式,分散成數個領域,每個領域都有自己所負責的責任。
        
        而MVC也是SoC另外的例子,MVC背後的核心概念就是明確的將使用者介面分成三個區塊,每一個區塊負責相對應的功能。

        模組(Model):負責保存資料或者操作。
        
        視圖(View):管理資訊的視覺呈現。
        
        控制器(Concern):控制器是連接模組跟視圖之間的橋樑。他將使用者在視圖上面的互動(例如點擊)轉譯成在模組中要執行的動作。

        舉例來說,當使用者在視圖上面點擊了『刪除』之後,接下來的控制器就會觸發模型中的刪除動作,然後他會要求刷新視圖來反應資料的更新。(也就是把資料刪除)


        說了那麼多,大家還是來實作吧,接續我們上一篇所做的項目,如果是第一次看到阿達發帖的小夥伴,可以到這個地方下載到上一篇的項目檔案。不過還是建議看過上一篇之後整個觀念會比較連貫喔。

項目載點:http://pan.baidu.com/s/1dDwEfVN

        今天我們要將它加上『刪除』的功能,倘若是已經完全了解MVC架構的話,應該對如何執行刪除列會有點概念了,這裏有三件事情你必須去做:
        
        1.撰寫程式碼將它切換成編輯模式,以便刪除
        2.從模型中刪除對應的表格資料
        3.對應表格資料變更,重新載入視圖

首先在這裡說明一下,在這裡有一個方法叫做tableView(_commitEditingStyle editingStyle:forRowAtIndexPath indexPath:)

你只要時做這個方法就可以了。So Easy~~~~

只要加入以下程式碼:

    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if editingStyle == .Delete{

            self.restaurantNames.removeAtIndex(indexPath.row)
            self.restaurantTypes.removeAtIndex(indexPath.row)
            self.restaurantLocations.removeAtIndex(indexPath.row)
            self.restaurantImages.removeAtIndex(indexPath.row)
        }
    }



接下來就是大家最愛command+R的快樂時間了,小夥伴們會發現說,真的出現了一個『Delete』很開心的繼續按下去~







评分

参与人数 2技术分 +3 黑马币 +10 收起 理由
lucky0512 + 10 赞一个!
黑妞 + 3 赞一个!

查看全部评分

38 个回复

正序浏览
不懂 不过还是顶一下
回复 使用道具 举报
swift的东西自己也得学习
回复 使用道具 举报
毛琳东 发表于 2015-7-2 17:40
能不能来个大神写个转成现代字的软件啊

這是現代人使用的字啊親
回复 使用道具 举报
能不能来个大神写个转成现代字的软件啊
回复 使用道具 举报
加油!!!!!!!!!
回复 使用道具 举报
看不懂啊!!!
回复 使用道具 举报
4B青年 发表于 2015-7-1 22:07
看惯了简体字,繁体字简直是反人类,不过用繁体字说明的话,大家注意力都会跑到繁体字的说明上吧?反而不怎 ...

個人不認同繁體字反人類的論點,畢竟還有很多的人類使用繁體字,代碼大家都會寫,謝謝您寶貴的意見
回复 使用道具 举报
看惯了简体字,繁体字简直是反人类,不过用繁体字说明的话,大家注意力都会跑到繁体字的说明上吧?反而不怎么认真看代码了
回复 使用道具 举报
有点高端,看不懂
回复 使用道具 举报
swift这个课程会开么?
回复 使用道具 举报
签到……
回复 使用道具 举报
签到。。。。。。。。
     
回复 使用道具 举报
Kuhoku 发表于 2015-7-1 17:55
下一篇開始就是簡體字了親

好的,顶。。。。。
回复 使用道具 举报
新手签到!!
回复 使用道具 举报

下一篇既有簡體字了 喜歡的話請繼續追喔~麼麼噠
回复 使用道具 举报

別啊 大家都是一起學習的
回复 使用道具 举报

別啊 大家都是一起學習的
回复 使用道具 举报
oh!no!我不要看繁体字。。。。
回复 使用道具 举报
lucky0512 发表于 2015-6-29 16:12
不能用简体字吗?看的太费劲了

下一篇開始就是簡體字了親
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马