スクリーンショットでわかるように、ここの灰色UIView
はコンテナとして使用しています。コードでは、 を割り当て、そのUINavigationController
ビューをサブビューとして灰色のコンテナー ビューに追加します。UINavigationController
has RootViewController
(左側に切り取られたテーブル ビューが表示されます。これは、UINavigationController のルート ビュー コントローラーです) 。
私の質問は、すべての側面をスーパービューの境界に固定する方法です。今はRootViewController
景色の一部しか見えないからです。
RootViewController
ストーリーボードでは、灰色のコンテナ ビューと のビューのすべての制約を設定しましたUINavigationController
。通常PushViewController
、サブビューとして追加する代わりに、問題なく表示されます。
UIViewController
これは、灰色のコンテナー ビューを含むコードです。
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
KNCouponsViewController *couponsViewControllerByList = [KNInstantiateHelper instantiateViewControllerWithIdentifier:@"KNCouponsViewController"];
self.theNavigationController = [[UINavigationController alloc] initWithRootViewController:couponsViewControllerByList];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.theContainerView addSubview:self.theNavigationController.view];
}
灰色のコンテナー ビューの制約は次のとおりです。
テーブルが切り取られたルートView Controllerのビューの制約は次のとおりです。
簡単な解決策はUINavigationController
、灰色のコンテナーと同じ幅と高さをビューに設定することです。
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect rect = self.theContainerView.frame;
rect.origin.x = 0;
rect.origin.y = 0;
[self.theNavigationController.view setFrame:rect];
[self.theContainerView addSubview:self.theNavigationController.view];
}
その後、正しく動作します。しかし、フレームのみを変更しなければ機能すると思いますか?