gpt4 book ai didi

ios - rightBarButtonItem 在 iOS 10 中的错误位置

转载 作者:搜寻专家 更新时间:2023-10-31 22:41:52 24 4
gpt4 key购买 nike

我想将 UINavigationControllerview 放入另一个 View Controller 的 view 中。问题是右栏按钮在 iOS 10 上放错了位置。在 iOS 8 和 9 上它看起来不错。

iOS 8 和 9:

enter image description here

iOS 10:

enter image description here

这是我添加导航 Controller 的代码:

override func viewDidLoad() {
super.viewDidLoad()

let viewController = MyViewController()
navController = UINavigationController(rootViewController: viewController)
navController.willMove(toParentViewController: self)
addChildViewController(navController)
navController.view.frame = view.bounds
view.addSubview(navController.view)
navController.didMove(toParentViewController: self)
}

在 MyViewController 中

override func viewDidLoad() {
super.viewDidLoad()

navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: .done,
target: self,
action: #selector(doneButtonPressed)
)
}

也没有裁剪 View (按钮本身除外)。查看 IB 调试 View 层次结构的快照:

enter image description here

有什么想法吗?

最佳答案

我通过将 viewWillAppearviewDidAppear 事件转发到导航 Controller 的 Root View Controller 解决了这个问题。

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

navController.viewControllers.first?.viewWillAppear(animated)
}

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

navController.viewControllers.first?.viewDidAppear(animated)
}

关于ios - rightBarButtonItem 在 iOS 10 中的错误位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44906600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com