iOS アプリケーションに問題があり、現在取り組んでいます:
現時点での私の主な目標は、のがクリックされたときに、UITableView
overlay
の上に小さい を表示することです。これは、ChildViewControllers の概念を試す良い機会になると思いました。だから私はこの概念を使用しようとしましたが、結果は満足のいくものではありません. 何もないようです。が発生しますが、コードが実行され (コンソールで確認できます)、 を設定すると、色付きの四角が表示されますが、他には何も表示されません...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
、指定されたサイズ (78 ポイントではなく 44 ポイント) を持たず、奇妙に重なっています。何が間違っている可能性がありますか?