gpt4 book ai didi

ios - 从任何其他类的 Controller 中删除 View ?

转载 作者:行者123 更新时间:2023-11-29 00:43:47 28 4
gpt4 key购买 nike

我有三个屏幕:Google map 、设置、登录。默认情况下,Google map 可见。当我想显示设置屏幕时,我不会移至设置 View Controller ,我只是将“设置”屏幕添加为“Google”的 subview map “屏幕”。

 menusettings=[self.storyboard instantiateViewControllerWithIdentifier:@"SET"];
[menusettings.view setFrame:CGRectMake(0, 0, 700,600)];
[self.view addSubview:menusettings.view];

更新设置后,我转到登录屏幕

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
UINavigationController *ppc = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self presentViewController:ppc animated:true completion:nil];

但是设置屏幕仍然位于登录屏幕后面,但没有删除。我尝试了两种场景

1.我尝试在进入登录屏幕之前删除设置 View

 [self.view removeFromSuperview];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"PRG_iPhone" bundle:nil];
UINavigationController *ppc = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self presentViewController:ppc animated:true completion:nil];

但它没有移至登录屏幕。

2.当我移动到登录屏幕后尝试删除设置 View 时

  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"PRG_iPhone" bundle:nil];
UINavigationController *ppc = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self presentViewController:ppc animated:true completion:nil];
[self.view removefromsuperview];

然后它移动到登录屏幕,但不会删除设置 View

所以我想为什么不从登录屏幕中删除Google map 屏幕的 subview ,即设置屏幕,但我不知道如何删除Google map screen subview ,即设置屏幕。请指导如何执行此操作?

最佳答案

改变这个

[self.view removeFromSuperview];

去尝试

[menusettings.view removeFromSuperview];

更新

  [menusettings.view removeFromSuperview];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"PRG_iPhone" bundle:nil];
UINavigationController *ppc = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self presentViewController:ppc animated:true completion:nil];

选择-1

[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];

选择 2

最初为您的 View 分配标签,例如

menusettings=[self.storyboard instantiateViewControllerWithIdentifier:@"SET"];
[menusettings.view setFrame:CGRectMake(0, 0, 700,600)];
menusettings.tag = 5; //you can use any number you like
[self.view addSubview:menusettings.view];

移除

 UIView *Remove = [self.view viewWithTag:5];
[Remove removeFromSuperview];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"PRG_iPhone" bundle:nil];
UINavigationController *ppc = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self presentViewController:ppc animated:true completion:nil];

选择 3

 for (UIView *subVie in self.view.subviews)
{
if (subVie.tag == 5)
{
[subVie removeFromSuperview];
}
}

关于ios - 从任何其他类的 Controller 中删除 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38892590/

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