0

私はこのフォーラムを検索し、iPhoneシミュレーターに画面が読み込まれたときの「黒い画面」ビューの問題に対するさまざまな解決策を調べましたが、私の問題は独特であり、まだ解決策を見つけることができていません。

これが起こっていることです:

  • 「プッシュ」セグエを使用してInterfaceBuilderを使用してViewAをViewBにリンクすると、ViewBが正しくロードされます(線をドラッグして「プッシュ」を選択します)。
  • 「プッシュ」は、ViewAのボタンが押されたときに実行されます。

ただし、ViewAのボタンを押したときにプログラムでViewBを読み込もうとすると、ViewBが黒い画面として表示されます。これが私がしていることです:

  • 最新バージョンのXCodeを使用しています。
  • -(void) loadViewViewBからコメントアウトされました。
  • Interface Builder使用してViewAとViewBを作成しましたが、どちらのビューにも.xibファイルがないため、ボタンが押されたときにプログラムでViewB(?)を割り当て+初期化するときに「initWithNibName」パラメーター(?)を使用できないと思います。
  • 私はNavigationControllerを持っています、ViewAは「RootView」であり、ViewAとViewBのそれぞれにViewControllerがあります。
  • ViewAボタンを押してViewBをプログラムでロードするために使用しているコードは次のとおりです。

    ViewB * viewB = [[ViewB alloc] init]; [self.navigationController pushViewController:viewBアニメーション:YES];

誰かが解決策を持っていますか?(PS--このコミュニティは素晴らしいです!!!)

みんな、ありがとう!

4

4 に答える 4

0

おそらくあなたのXIBは台無しです。viewcontroller.m[h][xib] を削除して、新しいものを追加してみてください。その前に、m および h ファイルの内容をコピーして貼り付けます。新しい空のビューコントローラーを追加した後、コンテンツを過ぎます。残念ながら、xib を再度組み立てる必要があります。

于 2013-03-17T13:07:37.877 に答える
0

ViewController を initWithNibName:@"" bundle で初期化してみてください: そのビューの XIB ファイルの名前を最初の引数の代わりに拡張子 ".xib" を付けずに配置し、バンドルを nil または [NSBundle mainBundle] に設定します。さらにAppleのドキュメントで確認できます。

于 2012-06-08T10:22:58.980 に答える
0

おそらく [self navigationController] は nil です。確認してください。

于 2012-06-09T11:34:54.240 に答える
0

ストーリーボードを使用している場合は、ViewController を次のように初期化する必要があります

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle bundleForClass:[self class]]];
ViewControllerB *viewController = [storyboard instantiateViewControllerWithIdentifier:@"identifier"];
[self.navigationController viewController animated:YES];

インターフェイスビルダーでは、初期化しようとしているView Controllerの識別子を「識別子」に設定する必要があります

(もちろん、MianStoryboard_iPhone は絵コンテの名前です!)

于 2012-06-08T23:07:04.837 に答える