我有几个模态视图一直“正常”工作,现在停止返回父视图控制器并且“代码没有改变”。——经典问题描述。
我调试了模态视图关闭并且父视图控制器为零,这解释了问题,但不是原因。我确实将我的 SDK 从 4.1.2 升级到了 4.2,因此我可以开始使用 iOS 5。我怀疑新的内存管理 ARC 以及我的自动释放与保留/释放风格。
以下是从我的 rootview 控制器到 AboutViewController 的代码:
- (IBAction)doInfo:(id)sender {
NSLog(@"%s", __FUNCTION__);
AboutViewController *aboutViewController = [[[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:[NSBundle mainBundle]] autorelease];
if (aboutViewController) {
aboutViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
aboutViewController.hidesBottomBarWhenPushed = YES;
self.navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
self.navigationController.navigationBarHidden = YES;
[self presentModalViewController:aboutViewController animated:YES];
}
}
以下是在 AboutViewController 中按下“完成”按钮后返回其父级的关闭。
- (IBAction)doDone:(id)sender {
NSLog(@"%s", __FUNCTION__);
[[self parentViewController] dismissModalViewControllerAnimated:YES];
}
好的...我通过如下更改进行了修复。现在的问题是,为什么这之前有效?
- (IBAction)doDone:(id)sender {
NSLog(@"%s", __FUNCTION__);
[self dismissModalViewControllerAnimated:YES];
}