iPhoneアプリ開発 −UITabControllerの利用−

公開日: : 最終更新日:2014/04/20 iPhone, IT, Mac, mixi


 やりたいこと


上にあるように下部にあるタブをタッチしたら別のページを呼び出す。

 方法

何種類かあると思いますが、今回は(2)のほうでやっています。
(1)UITabBarを使って設置したUIViewを表示させる
(2)UITabControllerを使ってUIViewControllerを呼び出す

 内容

 UIViewControllerの用意

タブの数だけUIViewControllerを継承したViewControllerを用意。
今回の例だと、以下の3種類を用意しています。

  • TopViewController
  • ListViewController
  • AddViewController

 宣言

「AppDelegate.h」にUITabBarControllerの宣言とUITabBarControllerDelegateを追加。

@interface AppDelegate : UIResponder
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tabBarController;

 実装

「AppDelegate.m」に以下のように記入。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
	self.window = [ [UIWindow alloc] initWithFrame:[ [UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    TopViewController  *topVC  = [[TopViewController alloc]  initWithNibName:nil bundle:nil];
    ListViewController *listVC = [[ListViewController alloc] initWithNibName:nil bundle:nil];
    AddViewController  *addVC  = [[AddViewController alloc]  initWithNibName:nil bundle:nil];
 
    topVC.title  = @"トップ";
    listVC.title = @"一覧";
    addVC.title  = @"登録";
 
	NSArray *viewControllers = [NSArray arrayWithObjects:topVC, listVC, addVC, nil]; //(A-1)
 
    self.tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
    [self.tabBarController setViewControllers:viewControllers animated:NO]; //(A-2)
 
    [self.window addSubview:self.tabBarController.view];
    [self.window makeKeyAndVisible];
 
    self.window.rootViewController = self.tabBarController; //(B)
 
    return YES;
}
 (A)について

(A-1)ViewControllerを入れたNSArrayを用意します。
(A-2)UITabBarControllerでsetViewControllersに(A-1)で用意したNSArrayを設置します。
NSArrayで値を入れた順にタブが表示されます。

 (B)について

ここで注意点として、(B)のようにrootViewControllerを指定する必要があります。
そうしないと以下のようなエラーメッセージが表示されます。

Application windows are expected to have a root view controller at the end of application launch

以上で、タブをタッチすると指定したUIViewControllerが呼び出されます。

 参考

広告

関連記事

no image

iPhoneアプリ開発 -iOS6から変わったこと-

Deployment Targetを5.1にしていた時には気がつかなかったのですが、iOS6になって

記事を読む

no image

jQueryMobileでタッチ(スワイプ)してページ遷移 -Paginationプラグインの利用-

スマートフォン対応をしていてタッチしてページ遷移させたいケースがあるかと思います。 そんな時に便利

記事を読む

スクリーンショット 2013-04-27 11.46.12

githubを使っての開発(2) -masterブランチにマージ-

前エントリーでgithub-flowをもとにした流れを書いたのですが、その中のマージについてもう少し

記事を読む

no image

アプリのためにFacebookページ作成 -現時点で注意すべき点-

* 前回 会社のメルアドでFacebookページを作成する方法を載せました。 * Faceboo

記事を読む

no image

iPhoneアプリ開発 -バックグラウンド処理をした際にはまったこと-

* おきたこと 以下のメソッドを用いて、処理に時間がかかるもの(ここだとhoge)をバックグラウンド

記事を読む

no image

CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-

cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ

記事を読む

no image

Objective-cで悩んでいたこと −アクセサのことについて−

* 疑問 以前書いたiPhoneアプリを開発していて(Objective-Cを触っていて)疑問に思

記事を読む

no image

カレログ騒動で考えたライフログのこと

今回、カレログというAndroidアプリが話題になり騒動になってます。 というわけで、ふとカレログ

記事を読む

no image

iPhoneアプリ開発 -WebViewで表示しているページで特定のリンククリック時の動作を変える-

* やりたいこと UIWebViewでWebページを表示し、特定のリンクをクリックした際には別処理を

記事を読む

no image

iPhoneアプリ開発 -スライドアウトするスプラッシュ画像-

* やりたいこと アプリを起動すると表示される画像(スプラッシュ画像)があります。 単に表示されるだ

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑