Osh*_*ALM 3 exc-bad-access objective-c uiviewcontroller
我有一个UIViewController与UITableView当的tableView是空的,我想展现另一种看法,所以我用这个
[self.tableView setHidden:YES];
NoKidsViewController *noKids = [self.storyboard instantiateViewControllerWithIdentifier:@"NoKidsView"];
[self.view addSubview:noKids.view];
Run Code Online (Sandbox Code Playgroud)
一切都很好,我能看到这个观点.但当我点击其中一个按钮时,我收到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];
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索了3个多小时,试图找到没有成功的解决方案.什么可能导致错误?我该如何解决?
Fru*_*eek 13
该noKids控制器是走出去的范围和被释放.这就是通常被称为僵尸对象的东西.
您需要将noKids控制器添加到childViewControllers包含控制器的控制器中.
NoKidsViewController *noKids = [self.storyboard instantiateViewControllerWithIdentifier:@"NoKidsView"];
[self addChildViewController:noKids];
[self.view addSubview:noKids.view];
[noKids didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
这将保留NoKidsViewController以及允许视图控制器方法向下传递给它.有关创建自定义容器视图控制器的更多信息:
| 归档时间: |
|
| 查看次数: |
8568 次 |
| 最近记录: |