1

ここに画像の説明を入力

スクリーンショットでわかるように、ここの灰色UIViewはコンテナとして使用しています。コードでは、 を割り当て、そのUINavigationControllerビューをサブビューとして灰色のコンテナー ビューに追加します。UINavigationControllerhas 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];
}

その後、正しく動作します。しかし、フレームのみを変更しなければ機能すると思いますか?

4

1 に答える 1