Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS-加载新视图后如何删除以前的视图?_Iphone_Ios_Multiview - Fatal编程技术网

Iphone iOS-加载新视图后如何删除以前的视图?

Iphone iOS-加载新视图后如何删除以前的视图?,iphone,ios,multiview,Iphone,Ios,Multiview,我正在练习多视图,但有一个小问题 当我的新视图加载后,我仍然可以看到以前的视图 如何使previos视图不可见 这是我的密码:- - (IBAction)changeView:(id)sender { RedClass *red = [[RedClass alloc] initWithNibName:@"RedClass" bundle:nil]; self.redClass = red; [red release]; //[self.view removeFr

我正在练习多视图,但有一个小问题

当我的新视图加载后,我仍然可以看到以前的视图

如何使previos视图不可见

这是我的密码:-

- (IBAction)changeView:(id)sender 
{
    RedClass *red = [[RedClass alloc] initWithNibName:@"RedClass" bundle:nil];
    self.redClass = red;
    [red release];
    //[self.view removeFromSuperview];
    [self.view addSubview:redClass.view];        
}
下面是一个屏幕截图:-

当我取消注释
[self.view removeFromSuperview]
时,我的红色视图甚至没有被加载

任何帮助都将不胜感激


谢谢

您可以在.h文件中声明视图变量。并在
viewDidLoad
中分配它,不要在那里释放它。每当您想要添加视图使用时,
[self.view addSubview:red]
当您想要删除时,可以使用
[red removeFromSuperview]

您可以在.h文件中声明视图变量。并在
viewDidLoad
中分配它,不要在那里释放它。每当您想要添加视图使用时,
[self.view addSubview:red]
当您想要删除时,可以使用
[red removeFromSuperview]

[self.view removeFromSuperview]
删除显示的uiview。
因此,您需要为以前加载的视图调用removefromsuperview,为新视图调用addsubview。

[self.view removefromsuperview]
删除显示的uiview。
所以,您需要为以前加载的视图调用removefromsuperview,为新视图调用addsubview。

我认为红色视图的颜色可能是透明的

所以请在你的redclass的nib文件中检查它。同时检查红色视图的alpha,它必须为1


您不能在此处删除第一个视图。因为它可能在窗口或其他控制器上加载。因此,如果要在视图1中添加视图2并删除视图1,则会自动删除视图2,因为它已在视图1中。因此您不能编写
[self.view removeFromSuperview]

我认为您的红色视图的颜色可能是透明的

所以请在你的redclass的nib文件中检查它。同时检查红色视图的alpha,它必须为1


您不能在此处删除第一个视图。因为它可能在窗口或其他控制器上加载。因此,如果要在视图1中添加视图2并删除视图1,则会自动删除视图2,因为它已在视图1中。因此您不能编写
[self.view removeFromSuperview]

是否有一种方法可以使以前的视图不可见,而不是删除?因为如果透明颜色是问题所在,那么必须有一些解决方案,因为人们可以在应用程序中使用透明颜色?使self.view.alpha=0和red.view.alpha-1并进行测试,我不确定,但检查了一次..不,我没有使用透明颜色,而是使用较浅的红色。和view.alpha不工作。这使我的观点完全不正确。但如果我将颜色更改为蓝色或绿色,则我以前的视图将不可见。这是怎么回事?为什么浅红色是透明的红色?有没有一种方法可以让前面的视图不可见,而不是删除?因为如果透明颜色是问题所在,那么必须有一些解决方案,因为人们可以在应用程序中使用透明颜色?使self.view.alpha=0和red.view.alpha-1并进行测试,我不确定,但检查了一次..不,我没有使用透明颜色,而是使用较浅的红色。和view.alpha不工作。这使我的观点完全不正确。但如果我将颜色更改为蓝色或绿色,则我以前的视图将不可见。这是怎么回事?为什么浅红色是透明的红色?