我有一个UIViewController
,其中在UITableView
中嵌入了UINavigationController
,该UITabBarController
启动了UITabBarController
。显示的导航栏包括后退按钮,我可以通过UIBarButtonItem
编程方式更改导航项的标题。
但是我不能在UITabBarController
的子控制器中添加UINavigationController
。既不在情节提要中,也没有编程方式。
我还尝试将子控制器嵌入UIBarButtonItem
中,但这只是添加了第二个导航栏。如何从UITabBarController
的子级添加?
最佳答案
在情节提要中,视图控制器位于导航控制器内部。并且您的子视图控制器是视图控制器的INSIDE选项卡栏控制器。您无法添加条形按钮,因为您无法访问navigationController
属性(在子控制器的情况下为零)。
通过访问navigationController
和tabBarController
进行调试。在您的情况下,最有可能是tabBarController?.navigationController
。
编辑
这就是我在代码中维护导航栏的方式:
final class MyVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupNavigationBar(withTitle: "MyVC")
}
}
extension UIViewController {
func setupNavigationBar(withTitle title: String? = nil) {
let backButton = UIBarButtonItem(image: #imageLiteral(resourceName: back), style: .plain, target: self, action: #selector(popVC(animated:)))
backButton.tintColor = .white
navigationItem.leftBarButtonItem = backButton
navigationItem.title = title
}
@objc
func popVC(animated: Bool = true) {
navigationController?.popViewController(animated: true)
}
}
关于ios - 将UIBarButtonItem添加为UITabBarController的子级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53668604/