-2

これは完全に重複していることはわかっていますが、何もうまくいきませんでした。はい、これは非常に単純な作業ですが、私はそれを理解できません。私がやろうとしているのは、ボタンを押して新しいビューを開くことだけです。ボタンをタップするとクラッシュします

ViewController.m

- (IBAction)buttonTapped:(id)sender {
    UIViewController *WebViewController = [[UIViewController alloc]initWithNibName:@"WebViewController" bundle:nil];

    [self presentViewController:WebViewController animated:YES completion: nil];
}

エラー

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x9829be0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key webView.'
4

2 に答える 2

2

先に進むことはあまりありませんが、経験に基づいた推測では、UIViewController サブクラスを .xib ファイルで File's Owner プロキシのクラスとして指定し、1 つ以上のオブジェクトを .xib ファイルに接続しました。 .xib をファイルの所有者のアウトレットに。ただし、コードでは、UIViewControllerサブクラスではなくインスタンス化しています。UIViewController には、サブクラスと同じ一連のアウトレットがないため、.xib 読み込みメカニズムが .xib からビュー コントローラーにオブジェクトを接続しようとするとUIViewController、キー (同じ名前) に対して KVC に準拠していないため、例外がスローされます。アウトレットの 1 つとして) またはセレクターがありません。

まず、プログラムを実行するときに Xcode のコンソールを確認することをお勧めします。アプリがクラッシュすると、そこにエラー メッセージが表示されます。

また、Xcode の Breakpoints Navigator でAll Exceptions のブレークポイントを追加して、例外がスローされたときにブレークするようにする必要があります。

Xcode の [オーガナイザー] ウィンドウでデバイスからクラッシュ ログを取得できます。これらは通常、スタック トレースを提供し、アプリがクラッシュした理由のかなりのアイデアを提供します。

于 2013-08-05T01:04:59.570 に答える