• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Objective-c 画面遷移について)

Objective-c 画面遷移について

このQ&Aのポイント
  • iPhoneのカルタゲームの画面遷移について教えてください。
  • 「初期画面」から「問題画面」への遷移方法と、「回答画面」から「問題画面」へ戻る方法を教えてください。
  • 問題画面で新しい問題をロードする方法を教えてください。

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

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

[1]dからbへ戻るには? 2つ以上前に戻るには、UINavigationControllerの「popToViewController:animated:」というメソッドを使います。 UINavigationController Class Reference http://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/ 戻るView Controllerのインスタンスを取得するには、UINavigationControllerのプロパティ「viewControllers」を使います。 [2]また、その際に問題を新しくロードし直すには(bの画面です)どうすれば良いのでしょうか。 UIViewControllerのメソッド「- (void)viewDidAppear:(BOOL)animated」で処理します。 「- (void)viewDidLoad」は、View Controllerが生成されたときにのみ呼び出され、画面遷移のときは呼び出されません。

eTakasy
質問者

お礼

それぞれ、解決できました! ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

    やはり、画面遷移ではまっていますので、助けて下さい。 navigationControllerで作成しています。 (内容は以前に質問させて頂いているものとほぼ同じですが、) 「FirstViewController」はUIScrollViewでスクロールさせている画面で、タッチイベントを取得する為に UIScrollView のサブクラスを作っています。 そこでタッチすると、「SecondViewController」へ遷移するようにしたいのですが、下記のように単純にpushViewControllerを使ってサブクラスへ書くと、「Property 'navigationContoroller' not found on object of type 'MyScrollview'」というエラーが表示されてしまいます。 このクラスへ書いたらいけないというのは、なんとなく分かりますが、かと言って何からどう手をつければ良いのか分かりません…… 問題なく画面遷移させるにはどうしたらよいのでしょうか。 詳しく教えて頂けると、大変助かります。。 ↓FirstViewController.h↓ @interface FirstViewController : UIViewController{   MyScrollview *controller; IBOutlet UIScrollView *scrollView; } ↓FirstViewController.m↓ - (void)viewDidLoad { controller = [[ MyScrollview alloc] initWithFrame:CGRectMake(0, 0, 1100, 1100)]; self.view = controller; [super viewDidLoad]; [super loadView]; scrollView.contentSize = controller.frame.size; [scrollView addSubview:controller]; } ↓MyScrollview .h↓ @interface MyScrollview : UIView<UIScrollViewDelegate>{ } @end ↓MyScrollview .m↓ -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{ ~省略~ SecondViewController *mvc = [[[SecondViewController alloc] initWithNibName:nil bundle:nil] autorelease]; [self.navigationController pushViewController:mvc animated:YES]; }

  • objective-cでの画面遷移の考え方

    毎度お世話になります。 objective-cの開発をして1年くらいになりますが、始めの頃は 画面遷移 = UINavigationControllerという考えしか頭にありませんでした。 最近、UITabBarControllerでも画面遷移が可能?という記事を見つけました。 そこで色々と調べてみたのですが、 UINavigationControllerは階層的な構造で画面遷移をコントロールできる。 UITabBarControllerは並列的な構造で画面遷移をコントロールできる。 という感じで自分の中でまとまりました。 そこでいくつか質問がございます。 (1)まず、上記の考え方は認識合っていますでしょうか? (2)次の開発では、特に階層的な構造は必要なく  画面が5つの構成で、考えています。  流れとしては、  A画面→B画面→C画面→D画面→A画面に戻る のループ  F画面は別画面です(設定画面のようなもの)  この場合、階層ではなく並列での画面遷移が最適かと思います。  UITabBarControllerで実装するべきなのか、UINavigationControllerで実装するべきなのか  この場合のどちらが一般的なのかをご教示頂きたいです。  ※C画面からA画面に戻る。等も出来たら尚良いです。 ご回答よろしくお願いいたします。

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

    今、iPhoneアプリを開発しています。簡単なカードゲームですが、 画面遷移について困っています。 サブクラス内のタッチイベントに、 [super presentModalViewController:viewController animated:YES]; と記述し、画面を切り替えたいのですが、 「'UIView' may not respond to 'presentModalViewController : animated:'」と 注意メッセージが表示され、 また、実行すると「Thread 1: received signal: "SIGABRT"」 となり、落ちてしまいます。 何分、初心者なもので、どこからどう手をつけたら良いのか分かりません。 色々調べたのですが、中々該当する答えが見つかりませんでした。 どなたか、お分かりになる方教えて頂けないでしょうか。 宜しくお願いします。

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

    毎回、初歩的な質問内容で申し訳ありませんが、困っているので教えて下さい。 「FirstViewController」はUIScrollViewでスクロールさせている画面で、タッチイベントを取得する為に UIScrollView のサブクラスを作っています。 そこでタッチすると、「SecondViewController」へ固定の画面で遷移するようにしたいのですが、「SecondViewController」の画面もそのままスクロール画面で表示されてしまいます。。。 「SecondViewController」をスクロールさせず、位置x=0 y=0で表示させるにはどうしたら良いのでしょうか? 詳しく教えて頂けると、大変助かります。。 ↓FirstViewController.h↓ @interface FirstViewController : UIViewController{   MyScrollview *controller; IBOutlet UIScrollView *scrollView; } ↓FirstViewController.m↓ - (void)viewDidLoad { controller = [[ MyScrollview alloc] initWithFrame:CGRectMake(0, 0, 1100, 1100)]; self.view = controller; [super viewDidLoad]; [super loadView]; scrollView.contentSize = controller.frame.size; [scrollView addSubview:controller]; } ↓MyScrollview .h↓ @interface MyScrollview : UIView<UIScrollViewDelegate>{ } @end ↓MyScrollview .m↓ -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{ SecondViewController *svc; svc = [[SecondViewController alloc] init]; [self addSubview:[svc view]]; }

  • 複数画面の画面遷移

    早速質問します。 A,B,Cの3画面があり、それぞれの画面遷移(コマンドボタン押下時)は下のコードで遷移しています。 A→Bに遷移する場合、  Me.Visible=False  B.Show vbModal  Me.Visible=Treu B→Cに遷移する場合、  Me.Visible=False  C.Show vbModal  Me.Visible=Treu このようなコードを記述したら、最終的にCの画面のみが表示されます。 問題はここからで、Cの画面を閉じると、なぜかB画面とA画面の両方が表示されてしまいます。本当であればB画面だけが出て欲しいのですが。 モーダルで起動した画面を、非表示にして再表示した場合モードレスに変わってしまうのでしょうか。また、その回避方法を教えて下さい。

  • 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は使っていません。

  • Objective-c ナビゲーションコントローラ

    iPhoneアプリ開発で、ナビゲーションコントローラを使った画面遷移を考えています。 起動時にViewController1が表示されており、pushViewControllerでViewController2へ 遷移します。 ViewController2が表示されている際に、左肩の戻るボタンを押すとViewController1へ 戻ると思いますが、それをViewController1で検出することは可能でしょうか? 具体的には、ViewController1はUITableViewControllerを継承していて、戻った際に [tableView reloadData];を実行したいのです。 お知恵をお貸しいただけないでしょうか。

  • XcodeのObjective-Cについて

    大変初歩的な質問でお恥ずかしいのですが、最近Xcodeを初めて本で少しずつObjective-Cを勉強中の初心者です。 MainStoryboardでLabelをViewに配置した後、 「画面を表示する準備ができたときにコンソール画面に"こんにちは"と表示させるプログラムを追加」というものが載っているのですが、指示通り打ち込んでもエラーでうまくいきません。 本には「m.」ファイル上の「@implementation」の次の行に 01 - (void)viewDidLoad 02 { 03   [super viewDidLoad]; 04   NSLog(@"こんにちは"); 05 } とあり、その通りに打ち込んだのですが(以下Xcodeよりコピペ) @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"こんにちは"); } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } となり、 NSLog(@"こんにちは"); } の次の行の - (void)viewDidLoad に赤い!マークのエラーが表示されてしまいます。 初心者のため訂正方法もわからずネット検索しても解決しなかったので、 大変申し訳ないのですが教えていただきたく思います。

  • C#で画面遷移のデータ保持について

    画面遷移でのデータ保持について質問です。 VisualStudio2010のC#で作っています。 Form1→Form2→Form3という風に画面遷移していきます。 Form1のテキストボックスに入力されたデータをForm2Form3のラベルに表示させたいです。 このやり方がまったくわからないので教えてください。 お願いします。

  • ASP.NET による画面遷移で質問です。

    はじめまして。 ASP.NETのC#で開発を行っていますが、画面遷移で困っています・・・ A画面 ⇔ B画面 ⇔ C画面 と遷移する場合と、 A画面 ⇔ C画面 へ遷移する場合があり、戻り先が操作により異なります。 その場合、遷移元の情報はどのように保持していいのでしょうか? 現在は、ページ情報(各種コントロール情報・遷移元画面名)クラスを作り、Listに格納しセッションにて保持しています。 しかしなが、使い勝手が悪く(作り方が悪いのか・・・)困っています。 一般的にはこのような画面遷移のシステムを作る際はどのように作成するものなのでしょうか?宜しくお願いします。