【问题标题】:moreNavigationController is always nil in UITabBarController在 UITabBarController 中,moreNavigationController 始终为零
【发布时间】: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 不需要。

标签: ios swift uitabbarcontroller


【解决方案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),但它不起作用。显示带有“更多”标签的简单的“更多”按钮。
  • 这是与您的原始问题不同的问题。但这可能只是您无法更改“更多”控制器的选项卡。如果您的应用正确本地化,它应该会自动更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 2012-01-16
  • 2020-01-07
  • 1970-01-01
相关资源
最近更新 更多