ストーリーボードからではなくnibファイルからビューをロードしようとしているため、ビューはロードされません。それは、適切にロードできるコントローラーBreakdownViewController
のサブクラスであると想定しています。UIViewController
コードをこれに変更します。
// You could change `BreakdownViewController` to `UIViewController` if it doesn't work with it.
// iOS 6.0 and above.
BreakdownViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"breakdown"];
[self presentViewController:controller animated:YES completion:nil];
メソッドが非推奨になっているため、実際には上記のコードを使用する必要がありますが、使用することもできます。
// iOS 5.0
BreakdownViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"breakdown"];
[self presentModalViewController:controller animated:YES];
presentModalViewController
これにトランジションアニメーションを追加することもできます。また、またはの直前に下の行を追加して購入することもできます。presentViewController
[controller setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
'presentModalViewController'または行を次のように置き換えることもできpresentViewController
ます
[self.navigationController pushViewController:controller animated:YES];
編集
ユーザーが上記のコードを使用した後、エラーが発生しました
2013-02-24 16:08:14.517 BudgetMe[1300:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFString stringByAppendingString:]: nil argument' *** First throw call stack: (0x1cac012 0x10e9e7e 0x1cabdeb 0xaf87d5 0xddba 0x10f1c7 0x10f232 0x11ac25 0x31a3a3 0x117ee3 0x118167 0x312c 0x10fd705 0x312c0 0x31258 0xf2021 0xf257f 0xf16e8 0x60cef 0x60f02 0x3ed4a 0x30698 0x1c07df9 0x1c07ad0 0x1c21bf5 0x1c21962 0x1c52bb6 0x1c51f44 0x1c51e1b 0x1c067e3 0x1c06668 0x2dffc 0x252d 0x2455)
[self.navigationController pushViewController...]
これは、 /に達したときにスロー[self presentViewController...]
されていました。ユーザーがプッシュ/提示しようとしたView Controllerの問題が原因で、エラーがスローされるようになったと思います。これを信じる理由は、このコード行がヒットするとviewDidLoad
、実際のView Controllerに移動する前のようにメソッドを実行しようとするため、エラーがスローされると、代わりにこの行にあるかのように表示されるためです。これを見つける最良の方法は、ブレークポイントを最大限に活用することです。
私はNSRangeExceptionの前にこの問題に苦しんでいます'、理由:' ***-[__ NSArrayM objectAtIndex:]:ビューコントローラを提示するときに空の配列の境界を超えたインデックス0'