由屏幕底部的NavigationController引起的灰色条

时间:2014-07-17 16:01:55

标签: ios objective-c

在我的iPad应用中,我使用UITabBarController,部分标签为UISplitViewController。我注意到当我将分割视图嵌入到Nav控制器中时,我最终得到一个横跨屏幕底部的灰色条,我无法摆脱它。

例如,这个:

Storyboard with one embedded Nav controller

产生这个:

Gray bar example

现在,如果我进入并将细节侧嵌入导航控制器,结果如下:

2nd Example

我已经尝试了所有我能想到的东西,而底部的灰色条纹却不会消失。有人有任何提示吗?

3 个答案:

答案 0 :(得分:7)

子类UISplitViewController并添加:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.extendedLayoutIncludesOpaqueBars = YES;
}

- (BOOL)extendedLayoutIncludesOpaqueBars
{
    return YES;
}

答案 1 :(得分:2)

将UISplitViewController的extendedLayoutIncludesOpaqueBars属性设置为true。这可以在初始化控制器时完成(很可能在AppDelegate中)。我不需要继承UISplitViewController来使其工作。经过iOS 9.2和9.3测试。

let splitViewController = UISplitViewController()    
splitViewController.extendedLayoutIncludesOpaqueBars = true

答案 2 :(得分:0)

如果您在ViewDidLoad中使用带有导航控制器的每个 ViewController TableViewController 的SplitViewController,请添加:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.extendedLayoutIncludesOpaqueBars = YES;
}