iPhone開発をするために、objective-cを使っているのですが、画面繊維がよくわかりません。


・ボタンを押したタイミングで下記を実行すると正常動作します。
・viewDidLoadで下記を実行すると
Warning: Attempt to present <ViewMain: 0x883b6e0> on <ViewController: 0x74429f0> whose view is not in the window hierarchy!と出て、画面遷移しません。
・viewDidAppearで行うと強制終了します。

原因がわかりますでしょうか?

・問題箇所
ViewMain *VCViewMain =[[ViewMain alloc] initWithNibName:@"ViewMain" bundle:nil];

[self presentModalViewController:VCViewMain animated:NO];

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/27 01:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:australiagc No.1

回答回数467ベストアンサー獲得回数90

ポイント34pt

色々な原因が考えられますが、まず viewDidLoad で実行した場合に件の警告が表示されるのは、内容どおりこの時点では ViewController がまだ View のヒエラルキーに追加されていないからです。これは仕様です。

問題は何故、viewDidAppear で行うと強制終了するか。この時、コンソールにエラーなどは表示されないのでしょうか?されないのであれば、viewDidAppearの一行目にブレイクポイントを打って、具体的にどの処理でアプリがクラッシュするか教えていただけますでしょうか?できれば viewDidAppear をそのままコピペしていただければ幸いです。地味に、[super viewDidAppear]を入れ忘れたとかもあるかもしれないので。

蛇足ですが、ViewMain クラスと ViewMain.xib が正しく紐付けられていれば、initWithNibName ではなく、init だけで十分なはずです。

id:kicr-pp No.2

回答回数451ベストアンサー獲得回数14

ポイント33pt

よくわからないとかいてあるので・・・
画面遷移のやり方http://www.hmylab.com/?tag=objective-c

id:mahosuto No.3

回答回数789ベストアンサー獲得回数28

ポイント33pt

http://code.msdn.microsoft.com/10-Web-C-9dc19c82
これを参考になりませんか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません