Iphone iOS-加载新视图后如何删除以前的视图?
我正在练习多视图,但有一个小问题 当我的新视图加载后,我仍然可以看到以前的视图 如何使previos视图不可见 这是我的密码:-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
- (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不工作。这使我的观点完全不正确。但如果我将颜色更改为蓝色或绿色,则我以前的视图将不可见。这是怎么回事?为什么浅红色是透明的红色?