让我简单介绍一下我的应用程序,我有根视图选项卡栏控制器(5个选项卡),第一视图是一个导航控制器;它的iPad应用程序。现在我有一个表格视图,我通过CODE制作标题。应用程序在iPAD的任一方向旋转设备时崩溃
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
_headerScenarioIDLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
//and many more declarations here
}
和
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
if (UIInterfaceOrientationIsLandscape(fromInterfaceOrientation))
{// for portrait.
_headerScenarioIDLabel.frame = CGRectMake(-30, 2, 125, 20);
}
else
{ // for LandScape
_headerScenarioIDLabel.frame = CGRectMake(-26, 2, 125, 20);
}
}
现在相应旋转视图的问题是这个代码是可以正常使用,当我启动应用程序&旋转,但是当我进入导航,并返回从导航当年该应用在进一步旋转时崩溃。
线程1 EXE错误访问,0x1bd109b:MOVL 8(%EDX),EDI%
可以在任何一个地方提出我错了,对于这个奇怪的崩溃.. ???
您是否检查'BAD ACCESS'是否归因于'_headerScenarioIDLabel'?尝试注释与'_headerScenarioIDLabel'相关的代码并查看它是否仍然崩溃。 –
是在评论它的工作正常的代码。 –
然后,似乎'_headerScenarioIDLabel'已'autoreleased',你正试图访问旧的地址位置。您应该确保在对自动旋转执行任何更多操作之前,再次检索'_headerScenarioIDLabel'的当前值。 –