• 締切済み

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テンプレートのままです。なぜ画面回転しただけで消去してしまうのか。。。

  • a_i10
  • お礼率33% (1/3)

みんなの回答

noname#190876
noname#190876
回答No.1

こういう質問は、どこか、画像表示サイトなどを使って、図示して、質問したほうがいいと思う。 誰も、行間まで読み取って、正確さを期して、回答しようなどとは、思わないんだから。

関連するQ&A

  • xcodeでのiOS開発で、コードで画面遷移する時

    xcodeでのiOS開発で、コードで画面遷移する方法について質問です。 テーブルビューで、セルをタップすると呼び出されるメソッドで コードで画面遷移をさせようとしています。 しかし、画面遷移をすると遷移先の画面が真っ黒になってしまいます。 どうすればなおりますか? - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NextViewController *nvc = [[NextViewController alloc] init]; nvc.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:nvc animated:YES]; } ちなみに、遷移先のクラスはインポートしてあります。 StoryBoardは使っていません。

  • splitView 詳細画面左上[戻る]の動作

    初めて質問させていいただきます。 iOS開発の初心者です。Xcode4.6.3 storyboard(iPad) にてspritVewControllerを使った場合に、以下の実装をしたいのですが、その方法が分からず困っております。 何卒、よろしくお願いいたします。 【前提】 ・Single View Applicationテンプレート使用して、最初のviewControllerは削除します。 ・splitViewControllerを追加します。 ・splitViewControllerの「Is Initial View Controller」にチェックします。 ・下記サイトを参考にして、Main と Detail 画面は表示されるまでの最低限の実装はしています。(iPad 横、縦切り替えによって、Main と Detail 画面も切り替わる状態です)  http://program.station.ez-net.jp/special/handbook/objective-c/uisplitviewcontroller/implement.asp 【困っている事(やりたい事)】 ・iPad縦向きのときだけ、detail画面の左上ボタン(Mainに戻るボタン)をタップしたとき、自前で実装するactionメソッド(下記参照:backButtonEvent)へ飛ばして、また、このとき、左上ボタンをタップしたときの既存動作(左側からMain画面がスライド表示される)は維持したいのですが、以下の実装をしたところ、自前で追加したactionメソッドには飛びましたが、既存動作(左側からMain画面がスライド表示される)がされなくなりました。 =(EzDetailViewController.h)==★行が追加したところです ★- (IBAction)backButtonEvent:(id)sender; === =(EzDetailViewController.m)==★行が追加したところです - (void)splitViewController:(UISplitViewController*)splitController willHideViewController:(UIViewController*)viewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)popoverController { // 渡された UIBarButtonItem に表示するタイトルを設定します。 barButtonItem.title = @"戻る"; ★ barButtonItem.target = self; ★ barButtonItem.action = @selector(backButtonEvent:);     :     : } ★- (IBAction)backButtonEvent:(id)sender ★{ ★ NSLog(@"Call in backButtonEvent."); ★} === そもそも、既存のbarButtonItemにaction追加したのがいけないのでしょうか。 ※これによって、既存動作処理が行われなくなったと推察していますが。。。 それとも、追加したactionメソッド内で、既存動作処理と同等のことを実装してあげないといけないのでしょうか。(もしそうであれば、この既存動作処理と同等の実装方法をご教授ください) はたまた、他の解決方法等ありましたら、是非、お教えいただきたく、よろしくお願いいたします。

  • Objective-c 画面遷移について

    iPhoneのカルタゲームを作成しています。 以下のような画面構成としていますが、 分からない点があるので、教えて下さい。 (その前に構成自体に問題有りでしょうか?) a.[初期(スタート)画面」 ↓pushViewControllerで遷移 b.[問題画面]…ランダムで問題表示 ↓pushViewControllerで遷移 c.[カードを並べて表示]…ランダムでカードを並べる ↓pushViewControllerで遷移(問題に対して、タップしたカードが正解の時のみ) d..[回答画面] [1]dからbへ戻るには? ([self.navigationController popViewControllerAnimated:YES];としていますが、これだと1つ前のcの画面に戻るだけですので、一気に2つ前に戻る方法を教えて下さい。) [2]また、その際に問題を新しくロードし直すには(bの画面です)どうすれば良いのでしょうか。(今は、- (void)viewDidLoadで問題表示させています…)

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

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

  • UITableVCのセルの表示位置を変える方法

    ObjectiveCを用いてiPhoneアプリ開発の勉強をしています。 SingleViewApplicationを選択し、TableViewControllerを追加、 最初からあるViewControllerに追加したボタンとTableViewControllerをmodal接続して ボタンを押すとTableViewControllerが表示されるようにしたのですが、 テーブルに表示されるセルが電池の真下あたりに表示されてしまいます。 storyboard上でセルの位置を動かそうと思っても、固定されているようで動かすことができませんでした。 上部に少し余白を作り、そこにボタンやラベルなどを設置したいのですが、 どのようにしたらセルの表示位置をずらすことができるでしょうか? もしくは、そういう用途の場合は、ViewController上にUITableViewを加えるのが普通なのでしょうか?

  • iPhoneアプリの開発についてです。

    UINavigationControllerのルートに紐づけられたBookMarkViewControllerというビューがあります。 このBookMarkViewControllerはテーブルビューで、 (1) BookMarkViewController *nextDir = [[BookMarkViewController alloc] init]; [self.navigationController pushViewController:nextDir animated:YES]; 上記のようなコードで、次々と画面遷移していきます。 また、BookMarkViewControllerには、 (2) BookMarkViewController *move = [[BookMarkViewController alloc] init]; move.isMove = YES; UINavigationController *nav = [self.storyboard instantiateViewControllerWithIdentifier:@"BookMarkView"]; [nav setViewControllers:[NSArray arrayWithObjects:move, nil]]; [self presentViewController:nav animated:YES completion:nil]; 上記のような内容のメソッドがあり、次々と画面遷移することのできる新たなUINavigationControllerをモーダル表現で表示します。 画面遷移する前のBookMarkViewControllerでは、上記のコードでうまくモーダルがでるのですが、(1)のメソッドを実行し新たに作り遷移したBookMarkViewControllerではなぜか、 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <BookMarkViewController: 0x11822e070>.' というエラーが吐き出されうまくいきません。 (2)のメソッドで「nav」を生成した直後にnav.viewControllersをNSLogしてみたのですが、nullがかえされてしまいました。(成功した例では<BookMarkViewController ○○○>と、正常に表示されました) 誰かわかる方ご指摘お願いします。

  • 表示中にブラウザ画面が勝手に動かなくできるアプリ

    アンドロイドのスマホを使用していますが、ブラウザで画面表示がバナーも含めて完全に表示完了する前に、ズームインして拡大して見ている画面内の所望のリンク先ボタンをタップしようとすると、まだ表示されていない部分が表示されるタイミングと重なって、タップする直前に画面が動いてしまって、所望のボタンの近くの別なボタンを押してしまうミスタップをしやすくて不便です。 画面表示が全て完了するまで待ってからタップすれば良いのでしょうが、家の光インターネットに比べて表示がもたつくので、待ちきれません。 画面表示の進行中や、バナーが表示された時などでも、ズームインして拡大して見ている画面表示が一切動かないように固定しておける(もちろん自分でドラッグした場合のみ画面を移動できる)気の利いたブラウザ、もしくはそのような昨日を追加できるアプリはあるのでしょうか?

  • 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"ファイルを選択する。

  • PCが勝手に立ち上がり、画面にエラーが出ます

    PCやPC周辺機器の電源をマルチタップでまとめ、PCの電源を落としてから待機電源を防ぐために、このタップをOFFにしていますが、このタップをONにしただけでPCが立ち上がってしまうことがあります。すると画面に以下のようなエラー表示が出ます。 Invalid configucation information - please run SETUP program Performing automatic IDE configuration... Primary Master: Disk Drive Secondary Master: CD-ROM Device Time-of-day not set - please run SETUP program Strike the F1 key to continue, F2 to run the setup utility F1を押して日時を設定しても次にマルチタップに電源を入れるときにまた同じエラーが出ることがあります。F2を押すとふつうに立ち上がりますが、日時が狂っています。これは何が原因なのでしょうか。このエラーを解決するにはどうしたらいいでしょうか。

  • スプラッシュトップで接続できない

    splash top でWin8.1とiPadをつなげようとしたのですが、アカウント登録してiPadに自分のパソコン名が表示され、それをタップすると、広告のような画面が表示されてその先に進めません。どうしたらiPadからWindowsを操作できるようになりますか?よろしくお願いします。

専門家に質問してみよう