objective-c - EXC_BAD_ACCESS EXC_I386_GPFLT 同时点击按钮

标签 objective-c uiviewcontroller exc-bad-access

我有一个 UIViewControllerUITableView,当 tableView 为空时我想显示另一个 View ,所以我正在使用它

    [self.tableView setHidden:YES];
    NoKidsViewController *noKids = [self.storyboard instantiateViewControllerWithIdentifier:@"NoKidsView"];

    [self.view addSubview:noKids.view];

一切都很好,我能看到风景。但是当我点击其中的一个按钮时,我收到了 EXC_BAD_ACCESS EXC_I386_GPFLT 错误。

//NoKidsViewController

    - (IBAction)addNewKid:(id)sender {
        AddKid *addKidController = [self.storyboard instantiateViewControllerWithIdentifier:@"AddKid"];
           [self.navigationController pushViewController:addKidController animated:YES];

    }

    - (IBAction)saleSpot:(id)sender {
        SaleSpot *saleSpotController = [self.storyboard instantiateViewControllerWithIdentifier:@"AddKid"];
        [self.navigationController pushViewController:saleSpotController animated:YES];
    }

我在网上搜索了 3 个多小时,试图找到任何没有成功的解决方案。什么可能导致该错误?我该如何解决?

最佳答案

noKids Controller 超出范围并被释放。这就是通常所说的僵尸对象。

您需要将 noKids Controller 添加到包含 Controller 的 childViewControllers

NoKidsViewController *noKids = [self.storyboard instantiateViewControllerWithIdentifier:@"NoKidsView"];
[self addChildViewController:noKids];
[self.view addSubview:noKids.view];
[noKids didMoveToParentViewController:self];

这将保留 NoKidsViewController 并允许 View Controller 方法传递给它。有关创建自定义容器 View Controller 的更多信息:

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

关于objective-c - EXC_BAD_ACCESS EXC_I386_GPFLT 同时点击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268744/

相关文章:

objective-c - 如何在 Objective-C std::deque @property 中推回?

objective-c - objective c - HTML 到 NSAttributedString

iphone - 从 objective-c 中的方法返回一个整数

IOS - 在 Storyboard中连接 segue 时遇到问题

ios - 无法触发 Segue 手动加载 VC - self.navigationController 为 Nil?

ios - 由于 AVPlayer 和观察者的初始化失败导致内存泄漏

crash - iOS 5 TableView崩溃

iphone - didReceiveAuthenticationChallenge 导致 EXC_BAD_ACCESS

iphone - 不确定如何修复此 EXC_BAD_ACCESS 错误

ios - 由于缩放,使用 ImageView 进行人脸检测和缩放效果不佳?