Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

2.2 UITabController

yuichi takeda edited this page Feb 26, 2015 · 19 revisions

UITabBarController Class Reference

iOS View Controllerプログラミングガイド

概要

tabController1 UITabBarController Class Reference から引用

UITabBarController は TabBar インタフェースを用いて ViewController を管理するコンテナです。

tabController2 View Controller Programming Guide for iOS から引用

UITabBarController における重要な property と method は以下の通りです。

  • viewControllers - viewController が含まれている NSArray
  • selectedViewController - 現在表示されている ViewController を取得、別のViewControllerに変更可能なプロパティ
  • delegate - 表示変更などのイベントを取得できる delegate UITabBarControllerDelegate Protocol

tab の表示は ViewController の UITabBarItem を設定することで変更可能

実装

プロジェクト作成

createTabProject

moreViewControllers と tabBarItem

viewControllers に 5 つ以上の ViewController を管理させる場合、Tab では 4 つを管理し、それ以外の ViewController は more として管理されます。

tabBarItem

iOS View Controllerプログラミングガイド から引用

MixiFirstViewController.h

#import <UIKit/UIKit.h>

@interface MixiFirstViewController : UIViewController

-(id)initWithImageName:(NSString *)imageNmae;

@end

MixiFirstViewController.m

-(id)initWithImageName:(NSString *)imageName;
{
    self = [super initWithNibName:@"MixiFirstViewController" bundle:nil];
    if (self) {
        self.title = imageName;
        self.tabBarItem.image = [UIImage imageNamed:imageName];
    }
    return self;
}

MixiAppDelegate.h

@interface MixiAppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tabBarController;
@end

MixiAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *vc1 = [[MixiFirstViewController alloc] initWithImageName:@"first"];
    UIViewController *vc2 = [[MixiSecondViewController alloc] initWithNibName:@"MixiSecondViewController" bundle:nil];
    UIViewController *vc3 = [[MixiFirstViewController alloc] initWithImageName:@"third"];
    UIViewController *vc4 = [[MixiFirstViewController alloc] initWithImageName:@"fourth"];
    UIViewController *vc5 = [[MixiFirstViewController alloc] initWithImageName:@"fifth"];
    UIViewController *vc6 = [[MixiFirstViewController alloc] initWithImageName:@"sixth"];

    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = @[vc1, vc2, vc3, vc4, vc5, vc6];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

画像ファイルはこちら

tab のバッジ

tabBadge

iOS View Controllerプログラミングガイド から引用

tabBar の上にバッジを表示することが可能です。

self.tabBarItem.badgeValue = @"5";

Storyboardを用いた方法

Storyboardを用いることで、視覚的にTabBarControllerとその中に入るViewControllerをデザインすることができます。 プロジェクトテンプレートから作成するときに"Tabbed Application"を選ぶと、起動時にTabBarControllerが表示されるアプリケーションが作成されます。

img

またそのUIはMain.storyboardに記載されています。

img

新しくViewControllerを追加する際は、ViewControllerをstoryboard上に追加し、Tab Bar Controller から controlを押しながらViewControllerへドラッグします

img

その後、segueは "view controllers" を選択します。

img

このように追加したViewControllerにSegueが追加されていれば完了です。

img

演習

  • storyboard上のTabBarControllerに対して、新しくViewControllerを追加してください

解答は SampleProjects/2.2/MixiTabSample2 をごらんください

はじめに

  1. iOSについて

  2. Xcode最初のステッフ

  3. 導入

  4. Objective C の基礎

  5. メモリ管理

  6. 1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)

  7. 1.3 UIViewController1 UIViewController のカスタマイズ(storyboard)

  8. UIViewController2 - ModalViewController

  9. UIViewController2 - ModalViewController(storyboard)

  10. UIViewController3 - ライフサイクル

  11. HomeWork 1 Objective C の基本文法

  12. HomeWork 2 UIViewControllerとModalViewController

  13. HomeWork 3 UIViewController + Animation

  14. UIKit 1 - container, rotate-

  15. UINavigationController

  16. UITabController

  17. Custom Container View Controller

  18. Supporting Multiple Interface Orientations

  19. HomeWork 1 - タブバーからモーダルビューを表示する

  20. HomeWork 2 - NavigationController

  21. HomeWork 2.3 デバイスことに回転対応

  22. UIKit 2- UIView -

  23. UIView

  24. UIView のカスタマイズ

  25. UIView Animation

  26. HomeWork 1 - UIScrollView

  27. UIKit 3 - table view -

  28. UITableView について

  29. UITableViewとNavigationController

  30. custom UITableViewCell の作成

  31. UITableViewのその他のオプション、カスタマイズ

  32. HomeWork 1 - Dynamic height with a custom uitableviewcell

  33. UIKit 4 - image and text -

  34. UIImagePickerController

  35. Assets Library

  36. UITextFiled, UITextView

  37. KeyboardNotification

  38. Homework 1 - フォトの複数枚選択

  39. ネットワーク処理

  40. NSURLConnection

  41. JSONのシリアライズとデシリアライズ

  42. UIWebView

  43. ローカルキャッシュと通知

  44. NSUserDefaults, Settings Bundle

  45. NSFileManager

  46. Key Value Observing

  47. NSNotification、NSNotificationCenter を用いた通知

  48. UILocalNotification

  49. Blocks, GCD

  50. Blocks

  51. GCD

  52. 【演習】GCD,-Blocksを用いたHTTPリクエストマネージャの作成

  53. 設計とデザインパターン

  54. クラス設計 1

  55. クラス設計 2

  56. [クラス設計演習] (https://github.com/mixi-inc/iOSTraining/wiki/9.3-%E3%82%AF%E3%83%A9%E3%82%B9%E8%A8%AD%E8%A8%88%E6%BC%94%E7%BF%92)

  57. 開発ツール

  58. Instruments, デバッガ

  59. CocoaPods

  60. テスト

  61. iOS開発におけるテスト

  62. GHUnit

  63. Kiwi

  64. KIF

  65. In-App Purchase

  66. In-App Purchase

  67. 付録

  68. Tips of Xcode

  69. Auto Layout 入門

  70. Auto Layout ドリル

Edit sidebar

Clone this wiki locally