まず、ストーリーボードを使用して、 firstviewcontrollerとsecondviewcontrollerの 2 つの uiviewcontroller を作成します。そして、xcode を使用して uinavigationcontroller を secondviewcontroller に埋め込みます(エディター--> 埋め込み --> ナビゲーション コントローラー)。次に、セグエを使用して最初から2番目に値を渡したいと思います。コードがあります:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"passValue"])
{
secondViewController *saveViewController = [segue destinationViewController];
[saveViewController setValue:data forKey:@"data"];
}
}
ただし、エラーが報告されます。ログは次のとおりです: キャッチされていない例外 'NSUnknownKeyException' によるアプリの終了、理由: '[ setValue:forUndefinedKey:]: このクラスは、キー データのキー値コーディングに準拠していません。
しかし、Xcode を使用して挿入したナビゲーション コントローラーを削除し、コードでナビゲーション バーを定義すると、この問題はなくなります。その理由は、実際の destinationViewController がsecondviewcontrollerではなくnavigationcontrollerであるためだと思います。では、Xcode に組み込まれているナビゲーション コントローラーを予約したい場合、この問題を解決するにはどうすればよいでしょうか?