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

リンク文字をタッチしても色が変わらない --webkit-tap-highlight-colorのメモ-

* 背景 jQuery Mobileを利用してスマートフォン対応をしたサイトにおいてリンク文字をタッ

記事を読む

no image

第二回Androidテスト祭り参加記録 -祭りに参加してきたよ-

久しぶりに勉強会に参加してきました。 参加してきたのは「第二回Androidテスト祭り(4/28)

記事を読む

Jenkins + iPhoneアプリ(2) -ローカルリポジトリにあるデータからipaファイル生成-

* これまで - * 最終目標 -(開発者)git(リモートリポジトリ)にソースをコミット

記事を読む

no image

研究室での進捗報告の方法について、ふと思ったこと

* 以下に加筆・修正して移動しました。

記事を読む

no image

PhoneGapを触ってみた ―導入編―

スマートフォン対応をjQuery Mobileを使ってやったので、その資産をいかせないかということで

記事を読む

no image

CakePHP1.3でスマートフォン対応

CakePHP1.3でスマートフォン対応のためにやったことをメモしておきます。 * 環境 -

記事を読む

no image

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

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

記事を読む

no image

とりあえず動作させてみよう「PHP+OAuthでTwitterに投稿」(追記あり)

で自動でTwitterに投稿したいと思ったのでTwitter周りについて調べてみた。 * 

記事を読む

no image

Twitterでサービスにログイン -ソーシャルログイン-

* やりたいこと -自身のWebサービスにTwitterIDでログイン(ソーシャルログイン)したい。

記事を読む

datebox-date

jQueryMobileでカレンダー表示 -DateBoxプラグインの利用-

スマートフォン対応をしているとカレンダーの表示の仕方をスマートフォンらしくしたいことがあると思います

記事を読む

広告

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 ↑