在 myAppDelegate.m 中:
MainViewController *mainViewController = [ [MainViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:mainViewController];
[navController setNavigationBarHidden:YES];
[[self window] setRootViewController:navController];
在 MainViewController.m 中没有什么特别的,只有一个绑定到按钮的操作:
- (IBAction)go:(id)sender {
if (!whereamiViewController)
{
whereamiViewController = [[WhereamiViewController alloc] init];
}
[[self navigationController] pushViewController:whereamiViewController animated:YES];
}
在 WhereamiViewController.m 中,只需一个按钮即可在 UINavigationViewController 中显示另一个屏幕:
-(IBAction)showList:(id)sender
{
PointsViewController *container = [[PointsViewController alloc] init];
[[self navigationController] pushViewController:container animated:YES];
}
和:
@interface PointsViewController : UITableViewController
@end
一切都很好。但是当我登陆最后一个屏幕 PointsViewController 并返回 WhereamiView 时,应用程序冻结了,Xcode 在 CoureFoundation CFHas 处显示了一个陷阱。
现在,我知道 Objective-C 不是 php,但这确实是一个简单的例子:我错过了什么?有没有办法调试问题?
调试器说:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- [__NSCFType _forgetDependentConstraint:]: unrecognized selector sent to instance
今天早上我在模拟器中运行了应用程序,没有崩溃!!这怎么可能?如果我在 iPhone 里面运行崩溃,在模拟器中没有崩溃。