iT邦幫忙

DAY 10
5

iPhone程式開發系列 第 10

[iPhone程式開發]10-ORBooks project認真看

靜下心來
將上次單純記錄下來的動作逐列研讀
這次總算比較看懂一些了
Line 1-8
開新專案並使用TabBarController做為root Controller,影片作者特別提醒TabBarController一定是rootController,她之前還曾拿NavigationController當rootController,浪費了不少時間。
Line 9,10,11
原先在MacBook裡隨便找的兩個圖示不能用,查了一下,似乎要30x30的png才行(App的icon則是57x57),找到這個網站,提供了一些圖示,加入project即可使用,這個問題算是解決了。(Glyphish - http://glyphish.com/download/)
Line 12
範例中的TabBar Control有兩個Tab,第一個Tab設定為Navigation Control,在 Navigation Control裡用的是TableView control,第二個Tab設定為一般UI View Control。本列是要設定第二個Tab要用的Text View Control。作者在新建ViewController時,都只建立.h和.m檔案,UI介面的xib檔案,她都另外手動建立,對像我這樣的新手而言,比較不會混淆。
Line 13
第12列建立AboutViewController(.h及.m),在本列則手動建立AboutView(.nib),誰是Controller,誰是View,一清二楚。
Line 14
要將UI介面改小一點以適合主視窗的大小,在影片中需要修改高度,但是我卻沒有辦法修改(高度欄位是disabled的),猜測是SDK版本的原因,由於執行結果沒有什麼大礙,這點就等有機會再查吧(謎之音:明明就是懶惰)。
Line 15
設定自己(view)的class為ViewController。
Line 16
以Interface Builder連結View control與變數。
Line 17
加入一個簡單的文字物件,顯示固定文字
Line 18
將TabBar Control的第二個Tab的class設為AboutViewController,nib name設為AboutView
Line 19
建立TabBar Control第一個Tab要用的Navigation Controller
Line 20
將UIViewController改成UINavigationController,奇怪,為什麼Line 27 有UITableViewController的Subclass可以用,而這裡卻要自己手動修改?
Line 21-23
在AppDelegate.h中定義BooksNavController的參照,Line 22 使用@class而不使用import “BooksNavController.h”,找時間查一下有什麼差別(註:改成import程式仍能正常執行)
Line 24-26
在AppDelegate.m中定義BookNavController的參照,Line 26 這會兒又用import了(改成@class也不會錯)
Line 27-29
建立TabBar Control第一個Tab的Navigation Controller裡面要用的TableViewController,Line 28 是高難度,完全看不懂,只嘆自己當年不認真學OOP。
Line 30-33
以Interface Builder連結Navigation Controller與Navigation UI 物件。需要注意的是,在Xcode或是Interface Builder,如果有修改什麼地方,記得要存檔,變更才會在另一邊看到。
Line 34-39
定義BooksTableView,是用來放在Tab Bar Control第一個Tab Bar (Navigation View)由的UI介面。第38列比較看不懂,為什麼得將BookView和Table View同時指向同一個view control
Line 40-45
實作BooksTableViewController,為了降低程式複雜度,在此class裡以固定的陣列資料寫到Book Table View中。
Line 46
定義BookDetailViewController
Line 47-50
定義BookDetailView,在此範例中,不管點擊任一本書,都會出現相同的detail頁面,顯示相同的固定文字內容(第50列)。
Line 51-53
在BookDetailViewController中定義BookDetailViewController的參照,以便實作時使用
Line 54-57
實作BooksTableViewController.m
Line 54
import “ORBooksAppDelegate.h”,看不懂為什麼(影片中說明是為了使用AppDelegate,要將booksNavController push到delegate中。)
Line 55
synthesize bookDetailViewController
Line 56
若booksDetailViewController不存在,就建立一個,設定初值,然後將bookDetailViewController “push” 到delegate control中
Line 57
release bookDetailViewController,以釋放記憶體

全系列文章


上一篇
[iPhone程式開發]09-自修課程-CS-193P(作業4-Paparazzi)和ORBooks
下一篇
[iPhone程式開發]11-自修課程-CS-193P(作業4-Paparazzi-Part 1)
系列文
iPhone程式開發30

2 則留言

我要留言

立即登入留言