我有这个错误,我现在正在苦苦挣扎几天。我基本上想要像Instagram一样制作个人资料。
单击上方“标签栏”中前两个按钮之一时,内容将显示在下方。屏幕的上半部分保持不变。我有一些UIViewControllers和一些UITableViewController。我想要5个按钮来显示viewcontrollers。我的问题是我可以显示一个tableviewcontroller,但如果我尝试显示第二个,然后再回到第一个,例如,它会卡在我显示的最后一个。我希望这很清楚。这是显示viewcontroller的代码。
- (IBAction)wallButtonPressed:(id)sender
{
if(!_userWallViewController) {
self.userWallViewController = [[WallViewController alloc] init];
self.userWallViewController.activityFeedTableView.bounds = self.containerView.bounds;
}
[self.currentViewController.view removeFromSuperview];
[self.currentViewController removeFromParentViewController];
self.currentViewController = self.userWallViewController;
self.userWallViewController.searchURLString = [NSString stringWithFormat:@"/event/user/%@", self.userID];
self.userWallViewController.containerView = self.containerView;
[self.containerView addSubview:self.userWallViewController.view];
[self addChildViewController:self.userWallViewController];
[self.userWallViewController.view setNeedsDisplay];
[self.userWallViewController viewWillAppear:YES];
}
containerView是一个UIView,它占据了整个屏幕的下半部分。 currentViewController是一个占位符viewController,userWallViewController是一个UITableViewController。
任何形式的帮助都非常感激。这是一个真正的窃听局面。感谢
答案 0 :(得分:0)
我做了一个愚蠢的错误,很难确定bu @ Matt的建议有帮助。
[self.fanOfViewController.containerView addSubview:self.fanOfViewController.userSimpleTableView];
[self.currentViewController.view removeFromSuperview];
[self.currentViewController removeFromParentViewController];
self.fanOfViewController.containerView = self.containerView;
[self addChildViewController:self.fanOfViewController];
[self.containerView addSubview:self.fanOfViewController.view];
//CLEAN UP THE CONTAINER VIEW BY REMOVING THE PREVIOUS ADDED TABLE VIEWS
[self.userWallViewController.activityFeedTableView removeFromSuperview];
[self.userFansViewController.userSimpleTableView removeFromSuperview];
每次我从它的视图控制器添加一个新的tableView时,按下相应的按钮,我将它堆叠在当前的视图容器中。当我尝试从层次结构中删除相应的viewController然后再次添加时,未调用viewDidLoad方法(它仅在第一次调用时)。这是我删除tableView的逻辑。
现在我也在按下按钮时添加它,并从“堆栈”中删除其他tableViews。它可能不是最好的方式,但我计划优化它。我希望这很清楚,并帮助遇到这个问题的任何人。