gpt4 book ai didi

ios - 如何删除添加到 navigationcontroller View 的 View ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:09:54 27 4
gpt4 key购买 nike

所以我的导航 Controller 中有一个设置栏按钮项,当从主页 View Controller 按下时,会在主页 vc 上打开设置 vc 透明 View ,因此主页 vc 在设置 vc 后面仍然可见。我希望导航栏仍然显示,所以在“HomeViewController.h”中我有以下代码:

-(IBAction)settingsButtonPressed:(id)sender{
SettingsViewController *settings = [[SettingsViewController alloc]init];
[self.navigationController.view addSubview:settings.view];
}

当我想删除设置 View 时,在“SettingsViewController”中我尝试这样做:

-(IBAction)exitSettings:(id)sender{
[self.navigationController.view removeFromSuperview];
}

但是当我这样做并尝试运行程序时,程序停止了,在调试区,它只是说

Thread 1: EXC_BAD_ACCESS (code = 2, address=0xb0000008)
(lldb)

我做错了什么,我该如何解决这个问题???

最佳答案

这里的崩溃是因为这段代码:

[self.navigationController.view removeFromSuperview];

您正在尝试删除 navigationController View 而不是设置 View 。

当你添加 SettingsViewController 时,添加一个 tag 到它:

-(IBAction)settingsButtonPressed:(id)sender
{
SettingsViewController *settings = [[SettingsViewController alloc]init];
settings.view.tag = 7;
[self.navigationController.view addSubview:settings.view];
}

并使用此标签从导航 Controller 中删除 View :

-(IBAction)exitSettings:(id)sender
{
[[self.navigationController.view viewWithTag:7] removeFromSuperview];
}

关于ios - 如何删除添加到 navigationcontroller View 的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892271/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com