天天看點

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

由于外出工作兩天,是以這兩天的學習心得沒有更新。今天開始繼續複習 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。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

拖入一個 Tab Bar Controller

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

在 Object Library 中找到 Tab Bar Item,并按需拖入 Tab Bar Controller 下方的橫條中。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

這時候點開 xib 界面左下角的三角形,并點開 Tab Bar Controller 左邊那個三角形展開下拉清單,可以發現裡面有許多項目了。繼續展開清單,發現裡面有 Tab Bar Item 這一項,這時候選中它,然後選擇 Attribute inspector,在 Bar Item 中有 Title 這一項,我們可以在這裡更改需要在标簽欄裡顯示的标簽的文字,同時我們也可以通過 Image 這一項更改标簽欄中的圖示。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]
Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

接下來我們要把 Tab Bar Controller 與 AppDelegate 關聯,否則 Tab Bar Controller 沒有相應的 File's Owner,也就無法成為根控制器。選中File's Owner,把右側的 Identity inspector 中的 Custom Class 改為 "AppDelegate"(可以在下拉清單中選擇或者手動輸入,但是手動輸入之後一定要按 return 鍵。Xcode的操作需要注意很多細節,有時候程式做失敗了不是你方法不對,而是細節沒做好,細節的内容可能很多書都不會講)。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

接着進入 Connection inspector,我們可以看到這邊有個名為 rootController 的輸出口,點選右邊的小圓圈并拖動到 Tab Bar Controller 界面上(左側的清單也可以),這樣就建立了連接配接。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

3.編輯各頁面

那麼如何編輯 Tab Bar Item所對應的 View呢?隻需要建立一個新的 Objective-C Class,但注意 Subclass of 一項要選 UIViewController,同時選中 With XIB for User Interface。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

然後回到 TabBarController.xib,在左側的清單中選中相應的 View Controller,将其 Identity inspector 中的 Custom Class 改為你剛剛建立的 Objective-C Class 的名字。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

然後你可以進入 Attribute inspector,把 View Controller 中的 NIB Name 設定為你所希望顯示的内容(以書上的Date Picker為例,将其改為BIDDatePickerViewController),這樣我們就可以看到左側清單中以及圖形界面的名字的更改了,這樣有助于理清思路,防止混亂。

Cocoa Touch 入門記——《精通 iOS 開發》學習心得(3) [标簽欄實作多視圖的方法(運用 xib)]

接下來你就可以進入你建立的 Objective-C Class 和對應的 xib 中完成你想實作的功能了。