0

私はIOSアプリケーションに取り組んできました。すべてのソースコードがそのセットアップで適切にロードされたアプリケーションが存在する単一のプロジェクトを作成する前は、それを複数のプロジェクトに分割していました。その後、私は今問題に直面しています... ViewDidLoadでは、ボタンのIBOutletはすべてnil値になり、ビューも黒色で読み込まれます。何が問題だったのか推測できません。これを引き起こす可能性のあるものについてのアイデア...

このようにビューをロードしました...

 main =[[main_page_controller alloc] init];

    if (main != NULL) 
        [root.navigationController pushViewController:main animated:YES];

質問をより理解しやすくするために、コードのどの部分をここに投稿する必要があるのか​​わかりません...提案を共有してください。

編集:古いプロジェクトを実行してから、新しいセットアップアプリケーションを正常に起動してみました。アプリケーションをデバイスから削除し、新しいセットアップのみを使用してロードしましたが、問題が再び発生します。それで、古いセットアップには何がありましたか?私は新しいものに何が欠けていますか...????

4

2 に答える 2

1

ドキュメントを参照してください

nibを使用してViewControllerオブジェクトを初期化するには、initWithNibName:bundle:メソッドを使用して、ViewControllerが使用するnibファイルを指定します。次に、View Controllerがビューをロードする必要がある場合、nibファイルに格納されている情報を使用してビューを自動的に作成および構成します。

ビューコントローラを初期化するときに、ビューに.xibファイルを使用している場合は、を呼び出す必要がありますinitWithNibName:bundle:。これは、xibファイルを使用して内にビューを作成することを意味しますloadView。現時点では、を使用しているだけinitで、空白のUIViewControllerオブジェクトが作成されます。

したがって、この場合、コードは次のようになります(.xibがメインバンドル内で「MainViewControllerView.xib」と呼ばれると仮定します)。

main =[[main_page_controller alloc] initWithNibName:@"MainViewControllerView" bundle:nil];
if (main) {
    [root.navigationController pushViewController:main animated:YES];
}

また、.x​​ibファイルの健全性をチェックして、すべてのファイルが目的のファイルにIBOutlet接続されているかどうかを確認します。

于 2012-12-11T10:54:08.487 に答える
1

まず、xib(nib)ファイル内のすべての接続を確認します。すでに接続されている場合は、それらを切断し、プロジェクト(cmd + k)をクリーンアップしてから、接続を再接続します。

接続については、この画像をご覧ください

ここに画像の説明を入力してください

于 2012-12-11T10:52:28.377 に答える