- ベストアンサー
iPhoneアプリでの画面遷移に関するエラー
- Nabigation-Basedのアプリ製作の中で、テーブル表示から下層画面を選択し、画面遷移するためのプログラムを書いているが、実行時にエラーが発生。
- エラーメッセージ「Thread1: Program received signal:"SIGABRT"」が表示され、原因がわからない。
- コードの一部を示し、エラーが発生する箇所を明示している。
- みんなの回答 (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ではエラーがでません。 条件分岐しているのですから、条件分岐から外れたスコープで、エラーが発生するはずがありません。
その他の回答 (1)
- harawo
- ベストアンサー率58% (3742/6450)
cal_1_UIViewController以外の、UIViewControllerのサブクラス、cal2_UIViewController、cal3_UIViewControllerでは、画面遷移は成功するのですか、エラーが出るのですか?
補足
cal2_UIViewControllerの、 [self.navigationController pushViewController:detailViewController animated:YES]; で同じエラー文面が出てしまいます。cal3_UIViewControllerでも同じことがおきます。 その場合、前文のcal_1_UIViewControllerではエラーがでません。 エラーと書いてしまいましたが、xcode4では、1breakpoint(1 disabled)とブレークポイントナビゲーターで出ます。
お礼
harawoさん、ありがとうございます。 アドバイスのおかげで、画面遷移ができたことと、質問のエラーがでた原因がわかりました。 NIbファイルの名前のところ、 cal_1_UIViewController *detailViewController = [[cal_1_UIViewController alloc] initWithNibName:@"cal 1 UIViewController" bundle:nil]; の@以下の部分を。アンダーバーを無しにしたら成功しました。 単純な凡ミスで質問をしてしまいすみません。 次回からは凡ミスしないようファイルネームのネーミングに気をつけます。(h. と m. とではファイルネームにスペースがあるとファイルネームの表記が変わるんですね。) なんだかんだで、私の質問にいつもアドバイスをいただき本当に感謝しております。 毎回、参考書などではわからない、原因への糸口をご教授いただきありがとうございます。 また私が分からない時に、ご教授頂ければ幸いです。
補足
> とりあえず「initWithNibName:nil bundle:nil」で、Nibファイルなしで、ViewControllerを生成してみると、どうなりますか? Nibファイルなしだと画面遷移できました!! > Nibファイル「cal_1_UIViewController.xib」「cal2_UIViewController.xib」「cal3_UIViewController.xib」が確実に作成されているか、構成は万全か。 ということは。。。↑かもしれないということですね。 少しいじってみます。 ありがとうございます。