IBAction 什么都不做。将“返回”记录到控制台,以便连接正常。调用 IBAction 时,self.topView 也不执行任何操作
-(IBAction)loadSettingsView:(id)sender;
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
[[NSBundle mainBundle] loadNibNamed:@"settingsView_iphone" owner:self options:nil];
} else {
[[NSBundle mainBundle] loadNibNamed:@"settingsView_ipad" owner:self options:nil];
}
[self.view addSubview:topView];
}
-(IBAction)loadMainView:(id)sender;
{
[topView removeFromSuperview];
NSLog(@"back");
}
最佳答案
希望我没有在这里做出太多假设,但这应该可以解决您的问题。我假设 topView
是当前类的成员:
-(IBAction)loadSettingsView:(id)sender;
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
topView = [[[NSBundle mainBundle] loadNibNamed:@"settingsView_iphone" owner:self options:nil] objectAtIndex:0];
} else {
topView = [[[NSBundle mainBundle] loadNibNamed:@"settingsView_ipad" owner:self options:nil] objectAtIndex:0];
}
[self.view addSubview:topView];
}
-(IBAction)loadMainView:(id)sender;
{
[topView removeFromSuperview];
NSLog(@"back");
}
基本上,您使用的 loadNibNamed
方法返回一个包含 nib 中所有顶级 View 的数组。如果你想引用这些 View (这里我假设 Nib 中有一个 View ),你需要实际分配你的 topView
变量。目前 topView
可能是 nil,所以您的 removeFromSuperview
调用什么都不做。
关于objective-c - 为什么这个 subview 没有被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11003363/