我正在将我的iPhone应用转换为iPad版本,为iPad创建新的XIB并将它们绑定到使用〜ipad XIB名称的现有目标C类。当视图被忽略时,呈现视图会抛出EXC_BAD_ACCESS
在iPhone版本中,我使用导航控制器向后退到应用程序。这在iPad中也应该可以正常工作,但是当导航控制器确实出现时,它不响应。事实上,任何交互都不可见,如果导航控制器背后有一张地图,并且双击回来,则只需放大您点击的地图即可。
所以我在iPad视图中加入了一个按钮,它应该做同样的事情。按下我打电话
[[self navigationController] popViewControllerAnimated: YES];
当我打电话给我时,我得到了EXC_BAD_ACCESS。我已经去到鬼的僵尸模式,给了我这个
*** -[UIWindowLayer superlayer]: message sent to deallocated instance 0x83bb9f0
伊夫确定0x83bb9f0
是呈现层self.view.layer
我使用ARC来处理我的分配和deallocs。
问题是:如何防止self.view.layer
解除分配?或者如何在适当的时候再次分配它,以便我不会得到这个错误?
如果需要,我可以提供更多的代码。非常感谢!!
编辑:继承人那里的主要页面(着陆页)创建,导航控制器
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
landingPage *LandingPage = [[landingPage alloc] initWithNibName:@"landingPage" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:LandingPage];
self.window.rootViewController = self.navigationController;
// [self.navigationController pushViewController:LandingPage animated:YES];
[self.window makeKeyAndVisible];
return YES;
那么这里就是内部的观点被称为:
mapView *MapView = nil;
MapView =[[mapView alloc] initWithNibName:@"mapView" bundle:nil];
[self.navigationController pushViewController:MapView animated:YES];
'mapView * MapView = nil;'Geez!你得到了错误的方式。只有类(例如NSString,UIWindow)应该以大写字母开头。为什么UIView_Controller_的一个子类叫做Map_View_?混乱如地狱。 – 2012-03-09 19:58:04
检查您的MapViewController类是否是任何其他类的委托。当mapViewController被弹出和释放时,很可能会调用委托方法。也许是一个MKMapViewDelegate? – 2012-03-09 20:03:58
是的,我知道,它很难打破这种习惯。我保证会更努力! Buuut我解决了它,见下面(在像5分钟) – 2012-03-09 20:17:00