• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iPhoneアプリ とあるプログラムの質問です。)

iPhoneアプリでの画面遷移に関するエラー

このQ&Aのポイント
  • Nabigation-Basedのアプリ製作の中で、テーブル表示から下層画面を選択し、画面遷移するためのプログラムを書いているが、実行時にエラーが発生。
  • エラーメッセージ「Thread1: Program received signal:"SIGABRT"」が表示され、原因がわからない。
  • コードの一部を示し、エラーが発生する箇所を明示している。

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

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

> cal2_UIViewControllerの、 [self.navigationController pushViewController:detailViewController animated:YES]; > で同じエラー文面が出てしまいます。cal3_UIViewControllerでも同じことがおきます。 インスタンス「detailViewController」が、確実に生成されているか、調べる必要がありますね。 Nibファイル「cal_1_UIViewController.xib」「cal2_UIViewController.xib」「cal3_UIViewController.xib」が確実に作成されているか、構成は万全か。 とりあえず「initWithNibName:nil bundle:nil」で、Nibファイルなしで、ViewControllerを生成してみると、どうなりますか? > その場合、前文のcal_1_UIViewControllerではエラーがでません。 条件分岐しているのですから、条件分岐から外れたスコープで、エラーが発生するはずがありません。

takahi6
質問者

お礼

harawoさん、ありがとうございます。 アドバイスのおかげで、画面遷移ができたことと、質問のエラーがでた原因がわかりました。 NIbファイルの名前のところ、 cal_1_UIViewController *detailViewController = [[cal_1_UIViewController alloc] initWithNibName:@"cal 1 UIViewController" bundle:nil]; の@以下の部分を。アンダーバーを無しにしたら成功しました。 単純な凡ミスで質問をしてしまいすみません。 次回からは凡ミスしないようファイルネームのネーミングに気をつけます。(h. と m. とではファイルネームにスペースがあるとファイルネームの表記が変わるんですね。) なんだかんだで、私の質問にいつもアドバイスをいただき本当に感謝しております。 毎回、参考書などではわからない、原因への糸口をご教授いただきありがとうございます。 また私が分からない時に、ご教授頂ければ幸いです。

takahi6
質問者

補足

> とりあえず「initWithNibName:nil bundle:nil」で、Nibファイルなしで、ViewControllerを生成してみると、どうなりますか? Nibファイルなしだと画面遷移できました!! > Nibファイル「cal_1_UIViewController.xib」「cal2_UIViewController.xib」「cal3_UIViewController.xib」が確実に作成されているか、構成は万全か。 ということは。。。↑かもしれないということですね。 少しいじってみます。 ありがとうございます。

その他の回答 (1)

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

cal_1_UIViewController以外の、UIViewControllerのサブクラス、cal2_UIViewController、cal3_UIViewControllerでは、画面遷移は成功するのですか、エラーが出るのですか?

takahi6
質問者

補足

cal2_UIViewControllerの、 [self.navigationController pushViewController:detailViewController animated:YES]; で同じエラー文面が出てしまいます。cal3_UIViewControllerでも同じことがおきます。 その場合、前文のcal_1_UIViewControllerではエラーがでません。 エラーと書いてしまいましたが、xcode4では、1breakpoint(1 disabled)とブレークポイントナビゲーターで出ます。

関連するQ&A