0

新しいビューを追加しようとしたときに、この非常にイライラする問題に遭遇しました.2つの異なるタイプのビューがあります:LargeCoverViewControllerCoverViewController.

私はこのようなものを作成しましたLargeCoverViewController:

LargeCoverViewController *tmpCover = [[LargeCoverViewController alloc] initWithNibName:@"LargeCoverViewController" bundle:nil andIssue:issue];

それは機能しますが、を作成しようとすると、機能しませCoverViewController

CoverViewController *tmpCover = [[CoverViewController alloc] initWithNibName:@"CoverViewController" bundle:nil andIssue:issue];

私はそれが.xibファイルと関係があると思っています.このようにすると、再び「動作」します

CoverViewController *tmpCover = [[CoverViewController alloc] initWithNibName:@"LargeCoverViewController" bundle:nil andIssue:issue];

Interface Builder では、クラスが適切に設定されており、ビューが正しくリンクされています。(基本的には、LargeCoverViewController の単なるコピーです)、まだ何か不足していますか? それは非常にイライラしています...

編集: アプリケーションはクラッシュしません。nibname が間違っていた場合、アプリケーションはクラッシュするはずですが、ここではそうではありません。

4

3 に答える 3

3

XIB ファイル全体をコピーするのではなく、新しい別の XIB ファイルを作成してから、UI アウトレットとビューを他の XIB からこの新しく作成された XIB ファイルにコピーしてみてください。

時々、Xcode はコピー&ペーストと混同されます。これが適切な解決策ではないことはわかっていますが、うまくいく場合もあります。:)

于 2012-08-27T06:09:21.307 に答える
0

ViewController をコピーするとき、ファイル所有者のカスタム クラスは同じままなので、それを新しい ViewController に変更し、変更後にもう一度ビューをバインドします。

于 2012-08-27T05:40:26.037 に答える
0

あなたのアプリケーションはその行でクラッシュしていますか? コンソールでログを確認します。エラー メッセージまたはクラッシュ ログが表示されている可能性があります。

他の XIB から XIB リソースをコピーした場合は、この新しいクラスで使用できない可能性のあるオブジェクトを含むリンクされたアウトレットを確認してください。

これがあなたのお役に立ち、問題を解決できることを願っています。

于 2012-08-27T05:41:56.577 に答える