人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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];

●質問者: makocan
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● australiagc
●34ポイント

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

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

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


2 ● kicr-pp
●33ポイント

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


3 ● otusoham
●33ポイント

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ