通常nil
、最初のパラメーターとして渡すとinitWithNibName:bundle:
、自動的に名前が検索されますが、そうでない場合があり、黒い画面が表示されるだけです。これはどのような状況で起こりますか?nil
コンソール ウィンドウにエラーはなく、nib 名の文字列リテラルに変更しない限り、アプリは黒い画面として実行され続けます。この問題を解決するには、どこで確認できますか?
質問する
656 次
3 に答える
2
ほとんどの場合、viewcontroller と nib の名前が一致していない可能性があります nib をロードする役割は次のようになります。
nib 名に nil を渡すと、sdk は次のことを行います。
- ビュー コントローラーのクラス名が MyViewController のように「Controller」という単語で終わる場合、MyView.nib のように「Controller」という単語を除いたクラス名と一致する名前を持つ nib ファイルを探します。
- ビュー コントローラ クラスの名前と一致する名前の nib ファイルを探します。たとえば、クラス名が MyViewController の場合、MyViewController.nib ファイルを探します。
于 2012-06-07T04:39:53.807 に答える
1
nil
以前の最初のパラメーターで" " を渡したことがありませんが[UIViewController initWithNibName: bundle:]
、Apple のドキュメントには次のように書かれています。
nibName パラメータに nil を指定し、loadView メソッドをオーバーライドしない場合、View Controller は他の手段を使用して nib ファイルを検索します。nibName を参照してください。
したがって、おそらく loadView メソッドで何かを行っていると思われます。
ビュー コントローラーをインスタンス化するときに、.xib 名を明示的に指定するのがおそらく最も安全です (そしてベスト プラクティスです)。
于 2012-06-07T04:39:08.183 に答える
0
代わりにいつでも init を使用して、viewDidLoad をオーバーライドできます。
于 2012-06-07T04:42:56.833 に答える