プログラム側でアプリのタブ数を制御したい

このQ&Aのポイント
  • xcode6を使用したiPhoneアプリ開発について、タブの数をDBで取得し、それぞれにMaster-Detail Applicationのようなページを表示させるアプリを作りたいです。タブの数をプログラムで変えられるのか、教えていただけますか。
  • 現在、xcode6を使ってiPhoneアプリ開発を勉強しています。アプリのタブ数をプログラム側で制御したいと思っています。具体的には、タブの数をDBから取得し、その数だけタブを生成し、それぞれにMaster-Detail Applicationのようなページを表示させたいです。タブの数をプログラムで変更できるのか、ご教授いただけますか。
  • xcode6を使用したiPhoneアプリ開発において、タブの数をプログラムで変更し、それぞれにMaster-Detail Applicationのようなページを表示させるアプリを作りたいです。タブの数をDBから取得する方法や、タブの数に応じてページを表示する方法などを教えていただけないでしょうか。
回答を見る
  • ベストアンサー

プログラム側でアプリのタブ数を制御したい

xcode6を使用したiPhoneアプリ開発について、勉強しています。 現在、タブの数をDBで取得してから、その数だけタブを生成し、 それぞれにMaster-Detail Applicationのようなページを表示させるような アプリを作りたいな、と思っています。 最初にアプリを作成するにあたり、 テンプレートにMaster-Detail Applicationを選択して その後storyboardでView Controllerを追加、 このViewをTab Bar Controllerに変更してから Navigation Controllerに接続する、というような作業を行ったのですが・・・ まずそもそも、タブの数をプログラムで変えられるものなのか、 そのタブの数に応じて、それぞれにMaster-Detail Applicationと同じ機構を 構築できるものなのかを、教えていただけないでしょうか。 ネット上を探してみたのですが、検索の仕方が悪いのか、 該当する情報を探し出すことができませんでした。 参考になるURLやサンプルコードなどがあれば、 ご教授いただければと思います。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

> ネット上を探してみたのですが、検索の仕方が悪いのか、 > 該当する情報を探し出すことができませんでした。 UITabBarController Class Reference https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarController_Class/#//apple_ref/occ/instm/UITabBarController/setViewControllers:animated: こういうことを申し上げると、きっとあなたの心が傷つくだろうということは、自覚しています。しかしながら、このくらいのことをいわれないと、あなたはいい方向に変化しないだろうと思い、あえていわせてもらいます。 なんでそんな嘘をつくのですか?Googleで「UITabBarController」をキーワードにして検索したら、上位5番目以内に、かならず上のApple Developのリファレンスがヒットします。見たことがないとはいわせません。 このリファレンスは、Xcodeのヘルプから開くものと同一です。そもそもクラスリファレンスをブラウズせずに、開発ができるはずがないと思うのですが、どうなでしょう?ほんとうにやる気があって、開発してるのですか? もちろん「英語が苦手で……」などという、クソ馬鹿野郎のいいわけは、おっしゃらないということは、存じ上げております。

yukie1101
質問者

お礼

ご回答いただきまして、ありがとうございます。 厳しいご意見をいただきまして、誠に恐縮です。 お恥ずかしい話ですが、今回iPhoneアプリを開発するにあたり、 「iPhoneアプリ開発の教科書」という書籍を参考に、開発を進めておりました。 基本的には書籍のサンプルコードを元に、不明な部分を ネットで検索する、というような形で開発を進めております。 今回、質問内容に書かせていただきました事項に、偽りはございません。 「xcode Tabbed Application タブの数をプログラムで制御」というようなキーワードで 検索をしており、Apple Developのリファレンスは全くヒットしませんでした。 今回、その存在をお知らせいただき、恥ずかしながら初めて拝見させていただきました。 まだ全て確認していないのですが、拝読させていただきます。 ありがとうございました!

関連するQ&A

  • Xcode タブ間の親子関係とは?

    ObjectiveCを用いてiPhoneアプリの開発をしています。 タブで親子関係があるとは、どういうときのことを言うのでしょうか? Single View Application から タブ画面を作る以下のような方法を用いた場合、タブ間には親子関係があるのでしょうか? [Editor]→[Embed In]→[Tab Bar Controller]を選択する。 Main.storyboardに"ViewController"を追加する storyboard上のTab Bar ControllerのViewと追加したViewControllerを接続する。 [File] [New][File...]から"Objective-C class"を追加する。 show the identity inspector ボタンを押し、CustomClassで追加した"Objective-C class"ファイルを選択する。

  • iPad用iOSアプリ開発

    iOSアプリ開発初心者です。 iPhone用のアプリが一応開発できたので、 iPad用の開発を始めようとしたのですが、 StoryboardのView Controllerに右側のリストから部品をドラッグしたところ、 View Controllerに載らずに、元に戻ってしまい、作業を進められません。 どうすればView Controllerに部品を載せることができるか、 ご存知の方がいらっしゃいましたら、お教えいただきたく、 よろしくお願いいたします。

  • iPhoneのアプリ開発、Xcodeについてお伺い致します。

    iPhoneのアプリ開発、Xcodeについてお伺い致します。 Xcodeのユーティリティアプリケーションのテンプレートを使って、裏面(Flipside View)にTable Viewを配置するアプリを開発本にそって造っています。 Table ViewをViewに貼り付けて使用するには、DataSourceやDelegateを実装しなくても、UITableViewControllerクラスを利用すればTable Viewは使用可能、と開発本に記載してありました。その本に沿って、XcodeにてUITableViewと接続する UITableViewControllerのサブクラスを作成しようとしたところ、「Subclass of」と書かれたラベルの横にあるプルダウンメニューの中に、開発本にある様な「UITableViewController」がありません。 (写真が実際の画面の写真で、開発本にはこのプルダウンメニューにUITableViewControllerがあるのですが…。) どのようにすれば、UITableViewControllerのサブクラスを作成できるかご教示いただければ幸いです

  • Master-Detail からの画面遷移

    iOS開発の初心者です。Xcode5.0.2 storyboard(iPad) にて Master-Detail Applicationテンプレートを使用して開発していますが、以下の実装をしようとしたところ、2点ほど期待動作にならず困っております。 何卒、解決策(可能であれば実際のコーディング例等を交えて)やヒントとなるネットサイト等、情報提供のほど、よろしくお願いいたします。 【前提】 ・Master-Detail Applicationテンプレートで新規作成(iPad storyboardを使用) ・TableViewController で画面を1つ新規作成し、その画面にNavigationControllerを追加 ・Master画面のbottom Barに、BarItemButtonを追加 ・TableViewControllerとNavigationControllerに割り当てるため、各SubClassの.m/.hファイルを新規作成、追加して、storyboard から Custom Class に設定 ・segue(modal)にて、BarItemButtonと、NavigationControllerを繋ぐ(BarItemButtonタップすると、TableViewController画面が(modal)表示されるように) 【発生する困った事象】 ■操作方法 ・iPad縦向き状態でアプリ初期起動すると、Detail画面が表示されます(Master画面は隠れた状態)。その後、Detail画面左上のナビゲーションバーで[Master]ボタンタップして、Master画面が左側のほうに Detail画面に重なった感じで表示されます。そこで、Master画面に付けたBarItemButtonをタップして、TableViewControllerを表示させます。 ■(困った)事象 2点 (1) TableViewController画面自体は正しく表示されますが、iPad最上部ステータスバーに、前画面のMaster画面とDetail画面の境界線らしき、縦線が1本残ってしまっています。 この線を消去する方法をお教えください。 ※個人見解では、modal表示させているため、裏にSplitViewControllerとして MasterとDetail画面が残っていて、Master画面が消去されないため、縦線が残っているのではないかと考えました。そこから、BarItemButtonタップ時に、このMaster画面(popoverされている!?)を消去すればよいかと思い、ネット検索したりして色々試してみたのですがうまくいかず、困っています。よろしくお願いします。 (2)上記操作にてTableViewController画面が正しく表示されている状態から、iPadを横向きにすると、TableViewController画面が(自動的に)消去されてしまい、2ペインでMaster-Detail画面が表示されます。TableViewController画面が消去されないようにする方法をお教えください。 ※ロジックは特に何もコーディングしてない状態ですので、ほぼMaster-Detail Applicationテンプレートのままです。なぜ画面回転しただけで消去してしまうのか。。。

  • iphoneアプリの開発でJSTを取得する方法

    こんにちは。 iphoneアプリ開発を最近チャレンジし始めたものです。 以下の内容をご存知の方がいらっしゃればご回答よろしくお願いします! -------- Xcodeで新規にプロジェクトをMaster-Detail Applicationの テンプレートで作成し、デフォルト値でビルドしてアプリを 利用した場合、「+」を押すとGMTの時間を取得することができます が、このとき取得できる時間を「GMT」ではなく日本時間 の「JST」で時間を取得する方法。 「timeMasterViewController.m」の [newManagedObject setValue:[NSDate date] forKey:@"timeStamp"]; の部分が関係ありそうだと思い[NSDate date] を 色々いじったがうまくいかず ちなみにこれから社内で使う勤怠管理のアプリを 開発予定 ------------ 知識がほとんどありませんので、ピントはずれな 質問かもしれませんが、アドバイスのほどよろしくお願いします。

  • xcode4での画面遷移方法

    こんにちは、 私はIBを使ってアプリ制作の勉強をしているのですが、分からないことがあり質問いたします。 ナビゲーションメニューからの画面遷移というのはよくみかけるのですが、(テンプレにあるので) 何もないビューからナビゲーションメニューへの遷移ってどのような手順で実現させるのでしょうか? 例えば、ボタンをクリックしたら、ナビゲーションビューへ画面遷移するといった形です。 もしかして、ナビゲーションのテンプレを元に改造するのかなとは思っているのですが、、、 何かヒントなどありましたらどうかよろしくお願いします。 私の環境: ・xcode4.1 ・IB使い

  • iphoneアプリ開発についての質問です

    XCodeでUISearchBarをUITableViewヘッダーにおいてテーブルビューの要素を検索したいのですがエラーになります。 サイズがテキスト量によって可変するカスタムセルをStoryboardで作れないのでコードで作成したんですが、その場合だとサーチバーにテキストを入力し検索を押した時点でエラーになり *** Assertion failure in -[UISearchResultsTableView dequeueReusableCellWithIdentifier:forIndexPath:], となってしまいます。 セル生成のコードは以下になります - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ItemTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; //ココでエラー NSDictionary *dic; if (tableView == self.searchDisplayController.searchResultsTableView) { dic = self.searchResult[indexPath.row]; } else { dic = self.itemArr[indexPath.row]; } cell.title.text = dic[@"title"]; cell.label.text = dic[@"detail"]; CGSize textSize = [dic[@"detail"] sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:CGSizeMake(300, 200) lineBreakMode:NSLineBreakByWordWrapping]; cell.label.frame = CGRectMake(10, 35, textSize.width, textSize.height); return cell; } Storyboard上のprototypecellなら問題なく動作するのですが、どうしてもコード生成のカスタムセルだとエラーになってしまうようです。 アドバイスお願いします。

  • iPhone天気アプリについて質問です。

    アプリ開発を始めたばかりでインターネットや参考書を参考に勉強はしておりますがまだまだ未熟者です。 表題の件ですが、天気アプリを作りたいと考えております。まだ初歩ですが途中までは製作しております。X-codeでシングルビューアプリケーションからTable View Controllerを使用し, タブを北海道、東北、関東・・・・と作り、北海道を選べば新たなTable View Controllerに推移し各地名のタブが表示されます。 ここまでは製作しているのですがその各タブからどのようにすればそこの天気が表示されるのかがわからずつまずいております。 APIの中には・地震情報・津波情報・警報・注意報・アメダスランキングなど様々な情報を取り入れる物もあるようですが、天気情報だけでと考えております。 その他現在地の天気を知る方法もあるようですが、そちらも取り入れない方向で考えております。 インターネットで調べる限り無料のAPI、有料のAPI、無料でも商用禁止のAPI、などもあるようでできれば無料のAPIを使用したいと考えております。 大雑把ではありますが上記が私の現状です。この後のやり方が難しいのか簡単なのかもわからない状況ですので、もしご説明が非常に難しいようでしたら参考になるサイトとかでも結構ですので、私がここから1歩踏み出せるようご教授よろしくお願いいたします。

  • HTMLコードの改行やタブについて

    現在、Dreamweaver+手打ちにてHTMLを作成しておりますが 作成するにつれてコード内の改行・スペース・タブなどが ずれてしまい、デザインビューのみで作成するのであれば 特に困りませんがコードビューでもコードを手打ちすることがあるので 完成するころにはとても見づらくて困っております。 (もちろんブラウザ上では何の問題もないのですが・・) 生成されたHTMLコードの改行やタブ数等を瞬時に 綺麗な状態にする事は可能でしょうか? もちろんDreamweaver以外の外部ツールを使う方法でも構いません。 ご存じの方は教えて下さい。

    • ベストアンサー
    • HTML
  • Xcodeでの画面遷移について

    Xcode5.0でアプリを作成しています。 アプリがバックグラウンドから再びアクティブになるときに画面遷移の処理をするために 以下の方法にてAppDelegateのapplicationDidBecomeActiveからView Controllerに処理を渡しています。 AppDelegate.m - (void)applicationDidBecomeActive:(UIApplication *)application { [[NSNotificationCenter defaultCenter] postNotificationName:@"applicationDidBecomeActive" object:nil]; } ViewController.m { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive) name:@"applicationDidBecomeActive" object:nil]; } - (void)applicationDidBecomeActive { ViewController *View = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView"]; [self presentModalViewController:View animated:YES]; } ViewController.mの- (void)applicationDidBecomeActiveで画面遷移の処理をしたいのですが、ViewDidAppearでは出来る画面遷移がapplicationDidBecomeActiveでは実行されない状態です。 ググって調べたところ、読み込みのタイミングが問題らしいことはなんとなく解ったのですが、 どうにかして、- (void)applicationDidBecomeActiveと同じタイミング(アプリがアクティブになったとき)で画面遷移を行う方法はありますでしょうか?

専門家に質問してみよう