6

以下のストーリーボードに示すように、UIViewController(赤) を a の最初のタブとして設定していUITabBarControllerます。このビュー コントローラーはコンテナー ビュー コントローラーであり、UINavigationControllerその内部contentView(赤いビュー コントローラー内の白い四角形) を読み込みます。

絵コンテ

これは、赤いビュー コントローラーの内部にナビゲーション コントローラーをロードするための私のコードですcontentView

- (void)viewDidLoad
{
    [super viewDidLoad];

    // instantiate navigation controller
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *navigationVC = [storyboard instantiateViewControllerWithIdentifier:@"N"];

    // place navigation controller inside content view
    [self addChildViewController:navigationVC];
    navigationVC.view.frame = self.containerView.bounds;
    [self.containerView addSubview:navigationVC.view];
    [navigationVC didMoveToParentViewController:self];
}

ビューコントローラーのコンテインメントについて私が知っていることから、ナビゲーションコントローラーのフレームを明示的に設定しているため、これは機能するはずです。ただし、コンテナの高さを超えるのに十分なセルがある場合、下にスクロールするとtableView、常に最後にバーが表示されます。違いを確認するために、セルをオレンジ色に、セルをtableViewに設定しましtableViewた。backgroundColorbackgroundColor

tableView の末尾のギャップ

の最後にあるオレンジ色のギャップを取り除くにはどうすればよいtableViewですか?

(注: 私は自動レイアウトを使用していないため、iOS7iOS6の両方で機能するソリューションが必要です。)

4

2 に答える 2

4

あなたもiOS 6で動作する答えを探していることは知っていますが、iOS 7以降では使用できます

self.extendedLayoutIncludesOpaqueBars = YES;
于 2014-11-26T12:17:24.147 に答える
0

の設定を試しself.edgesForExtendedLayout = UIRectEdgeAll;ましたか?-(void)viewDidLoadTable View Controller - Root

: iOS 7 のみ

于 2014-04-28T11:52:46.140 に答える