由于外出工作兩天,是以這兩天的學習心得沒有更新。今天開始繼續複習 Cocoa Touch。
1.委托
在建立根控制器(rootViewController)前使用委托的方法,在 AppDelegate.h 中加入輸出口
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) IBOutlet UITabBarController *rootController;
然後将以下方法加入 AppDelegate.m 中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
[[NSBundle mainBundle] loadNibNamed:@"TabBarController" owner:self options:nil];
self.window.rootViewController = self.rootController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
2.建立根控制器
建立一個空的 xib 檔案。File - New - File 或者 command + N,iOS - User Interface 中選中 Empty。将 xib 的名字命名為 TabBarController。
拖入一個 Tab Bar Controller
在 Object Library 中找到 Tab Bar Item,并按需拖入 Tab Bar Controller 下方的橫條中。
這時候點開 xib 界面左下角的三角形,并點開 Tab Bar Controller 左邊那個三角形展開下拉清單,可以發現裡面有許多項目了。繼續展開清單,發現裡面有 Tab Bar Item 這一項,這時候選中它,然後選擇 Attribute inspector,在 Bar Item 中有 Title 這一項,我們可以在這裡更改需要在标簽欄裡顯示的标簽的文字,同時我們也可以通過 Image 這一項更改标簽欄中的圖示。
接下來我們要把 Tab Bar Controller 與 AppDelegate 關聯,否則 Tab Bar Controller 沒有相應的 File's Owner,也就無法成為根控制器。選中File's Owner,把右側的 Identity inspector 中的 Custom Class 改為 "AppDelegate"(可以在下拉清單中選擇或者手動輸入,但是手動輸入之後一定要按 return 鍵。Xcode的操作需要注意很多細節,有時候程式做失敗了不是你方法不對,而是細節沒做好,細節的内容可能很多書都不會講)。
接着進入 Connection inspector,我們可以看到這邊有個名為 rootController 的輸出口,點選右邊的小圓圈并拖動到 Tab Bar Controller 界面上(左側的清單也可以),這樣就建立了連接配接。
3.編輯各頁面
那麼如何編輯 Tab Bar Item所對應的 View呢?隻需要建立一個新的 Objective-C Class,但注意 Subclass of 一項要選 UIViewController,同時選中 With XIB for User Interface。
然後回到 TabBarController.xib,在左側的清單中選中相應的 View Controller,将其 Identity inspector 中的 Custom Class 改為你剛剛建立的 Objective-C Class 的名字。
然後你可以進入 Attribute inspector,把 View Controller 中的 NIB Name 設定為你所希望顯示的内容(以書上的Date Picker為例,将其改為BIDDatePickerViewController),這樣我們就可以看到左側清單中以及圖形界面的名字的更改了,這樣有助于理清思路,防止混亂。
接下來你就可以進入你建立的 Objective-C Class 和對應的 xib 中完成你想實作的功能了。