我正在尝试在函数 didSelectRowAtIndexPath
中添加 subview Controller .但我无法删除我添加的这个 subview Controller 。这是我尝试过的:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MiddleViewController *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"MiddleViewController"];
if(isMenuExpanded==NO){
isMenuExpanded=YES;
middleVC.view.hidden=FALSE;
[middleVC.view setFrame:CGRectMake(-320, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self addChildViewController:middleVC];
[self.view addSubview:middleVC.view];
[middleVC didMoveToParentViewController:self];
[UIView animateWithDuration:0.3 animations:^{
[middleVC.view setFrame:CGRectMake(38, 0, self.view.frame.size.width, self.view.frame.size.height)];
}];
}else{
isMenuExpanded=NO;
//here i am trying to remove the child view controller
middleVC.view.hidden=TRUE;
[middleVC willMoveToParentViewController:nil];
[middleVC.view removeFromSuperview];
[middleVC removeFromParentViewController];
}
}
我还尝试隐藏 View Controller 。
最佳答案
请找变化,你也可以这样走
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MiddleViewController *middleVC =[self.storyboard instantiateViewControllerWithIdentifier:@"MiddleViewController"];
if(isMenuExpanded==NO)
{
isMenuExpanded=YES;
middleVC.view.hidden=FALSE;
[middleVC.view setFrame:CGRectMake(-320, 0, self.view.frame.size.width, self.view.frame.size.height)];
**middleVC.view.tag=8010;**
[self addChildViewController:middleVC];
[self.view addSubview:middleVC.view];
[middleVC didMoveToParentViewController:self];
[UIView animateWithDuration:0.3 animations:^{
[middleVC.view setFrame:CGRectMake(38, 0, self.view.frame.size.width, self.view.frame.size.height)];
}];
}
else
{
isMenuExpanded=NO;
**for(UIView *view in [self.view subviews])
{
if(view.tag == 8010)
[view removeFromSuperview];
}**
}
关于ios - 无法删除 subview Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442661/