视图未加载,因为您试图从 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...]
我相信这是由于用户试图推送/呈现的视图控制器上的问题而引发的错误。我相信这是因为当这行代码被命中时,它会尝试像viewDidLoad
在移动到实际视图控制器之前那样运行方法,所以如果抛出错误,它会显示为好像它在这一行上。找出这一点的最佳方法是充分利用断点。
我在NSRangeException 之前遇到过这个问题,原因是:'*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array' 当呈现视图控制器时