我在 iOS 应用程序中遇到问题,我目前正在处理:
我目前的主要目标是在 a中的 a被点击时呈现一个较小UITableView
overlay
的。我认为这应该是尝试 ChildViewControllers 概念的好时机。所以我尝试使用这个概念,但结果并不令人满意。似乎什么都没有。发生了,但代码被执行(我可以在控制台中看到它),当我设置 a 时,我可以看到一个彩色方块,但没有别的......UITableView
main
UIButton
UITableViewCell
main
backgroundColor
我不知道我的实现有什么问题,如果你能告诉我我遗漏的任何事情。
有没有更好的方法来实现我的目标?
- (void) buttonInCellOfMainTableViewPressed:(UIButton*) cartButton {
NSLog(@"ButtonClicked");
UIView * containerView = [[UIView alloc] initWithFrame:CGRectMake(30, 265, 255, 247)];
// containerView.backgroundColor = [UIColor blueColor];
//self isn't a subclass of UITableViewController, because a ordinary 'root view' is needed... The main tableView is a subview of the root view..
[self.view addSubview:containerView];
[self.view bringSubviewToFront:containerView];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle: nil];
OverlayController* overlayController = [mainStoryboard instantiateViewControllerWithIdentifier:@"OverlayController"];// is a subclass of UITableViewController
/*configure the overlayController*/
overlayController.view.frame = self.containerView.bounds;
[self addChildViewController:overlayController];
[self.containerView addSubview:overlayController.view];
[overlayController didMoveToParentViewController:self];
}
编辑:我修复了一个错误,所以知道代码如下所示:
- (void) buttonInCellOfMainTableViewPressed:(UIButton*) cartButton {
NSLog(@"ButtonClicked");
self.containerView = [[UIView alloc] initWithFrame:CGRectMake(30, 265, 255, 247)];
// containerView.backgroundColor = [UIColor blueColor];
[self.view addSubview:self.containerView];
//self isn't a subclass of UITableViewController, because a ordinary 'root view' is needed... The main tableView is a subview of the root view..
[self.view bringSubviewToFront:self.containerView];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle: nil];
OverlayController* overlayController = [mainStoryboard instantiateViewControllerWithIdentifier:@"OverlayController"];// is a subclass of UITableViewController
/*configure the overlayController*/
overlayController.view.frame = self.containerView.bounds;
[self addChildViewController:overlayController];
[self.containerView addSubview:overlayController.view];
[overlayController didMoveToParentViewController:self];
}
通过此更改,overlayController
可见,但看起来很奇怪:表格中的某些单元格overlayController
没有指定的大小(44 点而不是 78 点)并且以奇怪的方式重叠。有什么问题?