当我在 iPhone 上使用方法 insertSubview:atIndex:
时,程序无法运行,并在 main.m 文件中显示 EXC_BAD_ACCESS。但是,当我使用 presentModalViewController
时,程序运行完美。
此外,switchToView 方法在第一次使用时可以工作,但 to 和 from 不同,但第二次就不行了。
出了什么问题?
这是我的代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ShowBookDetails *sbd = [[ShowBookDetails alloc] initWithNibName:@"ShowBookDetails" bundle:nil];
[self switchToView:sbd from:self];
}
我的方法如下:
-(void)switchToView:(UIViewController*)nextView from:(UIViewController*)currentView
{
[currentView.view insertSubview:nextView.view atIndex:1];
}
最佳答案
查看此处的 View 属性
它严格说明了我在评论中所说的内容:
“每个 View Controller 对象都是其 View 的唯一所有者。您不得将同一个 View 对象与多个 View Controller 对象关联。此规则的唯一异常(exception)是容器 View Controller 实现可以将此 View 添加为 subview 在它自己的 View 层次结构中。在添加 subview 之前,容器必须首先调用它的 addChildViewController: 方法来在两个 View Controller 对象之间创建父子关系。”
直接来自苹果!
关于iphone - 插入 subview 时EXC_BAD_ACCESS? (iPhone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156504/