なかじまの開発ブログ

アプリ開発における備忘録などなど。

MENU

UITabBarでUIViewControllerを切り替える【Objective-C】

準備

ViewControllerの表示したい場所にUITabBarを設置してください。

f:id:s_nakajima:20160304183815p:plain

設置したUITabBarは『ViewController.h』にOutlet接続(名前:tabBar)してください。


そしてTabBarのアイテムと同じ数のViewControllerをInterfaceBuilderに設置してください。

f:id:s_nakajima:20160304184049p:plain

そして各ViewControllerにメソッドとヘッダーファイル、StoryboardIDを設定してください。

(左:その1)(右:その2)
f:id:s_nakajima:20160304184157p:plainf:id:s_nakajima:20160304184203p:plain

コーディング

『ViewController.h』

@property (weak, nonatomic) IBOutlet UITabBar *tabBar;


『ViewController.m』

#import "FirstViewController.h"
#import "SecondViewController.h"

@interface ViewController()
@property (nonatomic) UITabBarController *barcon;
@end

@implementation ViewController

@synthesize tabBar;
@synthesize barcon;

- (void)viewDidLoad {
  [super viewDidLoad];

  // ViewControllerの呼び出し
  FirstViewController *firstView = [self.storyboard instantiateViewControllerWithIdentifier:@"firstview"];
  SecondViewController *secondView = [self.storyboard instantiateViewControllerWithIdentifier:@"secondview"];

  // ViewControllerをArrayに格納
  NSArray *tabitems = [NSArray arrayWithObjects:firstView, secondView, nil];

  // UITabBarControllerの設定
  barcon = [[UITabBarController alloc] init];
  [barcon setViewControllers:tabitems animated:NO];
  barcon.tabBar.frame = tabBar.frame;

  // UITabBarのアイテムの設定
    firstView.tabBarItem = [tabBar.items objectAtIndex:0];  // 1つ目
  secondView.tabBarItem = [tabBar.items objectAtIndex:1];  // 2つ目

  [self.view addSubview:barcon.view];
}

完成

f:id:s_nakajima:20160304185245p:plainf:id:s_nakajima:20160304185250p:plain