在iOS 13上显示第二个模式导航控制器时,填充错误

问题描述 投票:1回答:1

[在iOS 13上,当在第一个上显示第二个模式视图控制器时,按钮栏项上的填充不正确。特别是,右边距消失了。

Incorrect Padding

应该如何解决?

uinavigationbar ios13 uinavigationitem
1个回答
5
投票

此行为归因于iOS 13中的错误。可以通过在导航栏上调用setNeedsLayout进行修复。

快速示例:

override func viewWillAppear(_ animated: Bool) {  
     super.viewWillAppear(animated)  
     if #available(iOS 13.0, *) {  
          navigationController?.navigationBar.setNeedsLayout()  
     }  
} 

Objective-C示例:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // Fix navigation item placement on iOS 13: https://forums.developer.apple.com/thread/121861
    if (@available(iOS 13.0, *)) {
        [self.navigationController.navigationBar setNeedsLayout];
    }
}

贷方:在Apple Developer Form上从this thread借用的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.