iphone - 插入 subview 时EXC_BAD_ACCESS? (iPhone)

标签 iphone ios xcode exc-bad-access

当我在 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 属性

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

它严格说明了我在评论中所说的内容:

“每个 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/

相关文章:

iphone - 知道显示的是哪个键盘

iphone - iOS:点击 TableView 中行的计数器

ios - iPhone游戏设计中的单例/全局变量

iOS 以编程方式更改 AppDelegate 中的 View

objective-c - 指定在主线程空闲时调用某些东西

ios - 创建构建文件时 Xcode 9.4 崩溃

iphone - 如何在 iPhone 应用程序中保存 .zip 文件

c# - 使用 Xamarin 的同一设备 iOS/Android 上的 2 个应用程序之间的通信

ios - Xcode 项目不显示模拟器列表

iphone - 简单问题: What does it mean if a variable is highlighted in red in the XCode debugger?