在 UITabBarController 中,moreNavigationController 始终为零
Posted
技术标签:
【中文标题】在 UITabBarController 中,moreNavigationController 始终为零【英文标题】:moreNavigationController is always nil in UITabBarController 【发布时间】:2018-01-26 17:14:43 【问题描述】:我正在尝试在我的UITabBarController
中自定义“更多”按钮的标题,因为我正在使用另一种语言编写应用程序。我将UITabBarController
子类化为能够访问tabBarController
属性。不幸的是,无论我把它放在viewDidLoad
还是viewDidAppear(_)
中,它总是nil
。关于如何编辑它的任何想法?
import UIKit
class ControllerVC: UITabBarController
let uiManager = UIManager()
override func viewDidLoad()
super.viewDidLoad()
override func viewDidAppear(_ animated: Bool)
if let tabBarItem = tabBarController?.moreNavigationController.tabBarItem
let deselectedImage = tabBarItem.image
let selectedImage = tabBarItem.selectedImage
tabBarController!.moreNavigationController.tabBarItem = UITabBarItem(title: "بیشتر", image: deselectedImage, selectedImage: selectedImage)
else
uiManager.showActivityIndicator(self)
【问题讨论】:
@DivyeshGondaliya 不需要。 【参考方案1】:问题不在于moreNavigationController
。问题在于tabBarController
。你的班级是UITabBarController
。标签栏控制器的tabBarController
属性始终为nil
。
只要做:
let tabBarItem = moreNavigationController.tabBarItem
let deselectedImage = tabBarItem.image
let selectedImage = tabBarItem.selectedImage
moreNavigationController.tabBarItem = UITabBarItem(title: "بیشتر", image: deselectedImage, selectedImage: selectedImage)
【讨论】:
感谢您的帮助。现在它进入 if 语句。唯一的问题是我所做的更改没有生效。我写了moreNavigationController.tabBarItem = UITabBarItem(title: "بیشتر", image: deselectedImage, selectedImage: selectedImage)
,但它不起作用。显示带有“更多”标签的简单的“更多”按钮。
这是与您的原始问题不同的问题。但这可能只是您无法更改“更多”控制器的选项卡。如果您的应用正确本地化,它应该会自动更改。以上是关于在 UITabBarController 中,moreNavigationController 始终为零的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UINavigationController 中嵌入 UITabBarController?
无法让辅助 UITableViewController 在 UITabBarController 中显示
在UITabBarController中强制特定的viewcontroller在landscape中
在 UITabBarController 的 UINavigationController 中推送 UIViewController