我有四个UIViewControllers链接到UITabBarController的标签栏。我需要在故事板之外和类的内部设置标签栏项目标题。
我试过了..
class MyViewController: UIViewController {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.title = NSLocalizedString(MyConstants.StringKeys.TabName, tableName: Constants.Strings.MyTable, comment: Constants.EmptyString);
}
}
这是调用的,但标题永远不会设置。与self.tabBarItem.title ="标题"
相同我还尝试在viewDidLoad中设置标题,但这只是在转到视图控制器后更新标题。
思想?
答案 0 :(得分:30)
您可以通过设置视图控制器的viewDidLoad
属性,在title
中设置视图控制器中的标签标题。
title = "Number 0"
或者,如果要设置标签栏控制器中的标题,可以在标签栏控制器viewDidLoad
中设置这些标题:
tabBar.items?[0].title = "Number 0"
tabBar.items?[1].title = "Number 1"
答案 1 :(得分:21)
我想通了,看起来好像被awakeFromNib()写了一遍。
override func awakeFromNib() {
super.awakeFromNib()
self.title = NSLocalizedString(MyConstants.StringKeys.TabName, tableName: Constants.Strings.MyTable, comment: Constants.EmptyString);
}
我在那里移动了我的自我分配,它纠正了我的问题。
答案 2 :(得分:5)
以下是每个viewController.swift文件中的解决方案,您只需添加以下代码
即可sign(x)*(- (phi'(|x|) + c) / (phi(|x|) )
这是一个非常简单的awakeFromNib方法,当nib创建简单的启动时,你可以很容易地调用任何东西,因为在ViewDidLoad或你单击或选择时调用的任何viewControllerDelegate方法。所以这是一个超级简单的功能。
感谢。
答案 3 :(得分:4)
我一直在尝试不同的解决方案,但唯一有效的方法是添加标签栏,在animal = classes.get(pet_type, Pet)(name, colour)
viewWillAppear
方法中设置代码。我不是单独在每个视图控制器中执行此操作,因为它仅在按下标签栏按钮时才起作用:
UITabBarController
答案 4 :(得分:0)
如果在放入ViewControllers
之前以编程方式创建TabBarController
,请尝试以下操作:
override init(style: UITableViewStyle) {
super.init(style: style)
self.title = "Title"
}
或者这个,如果不是TableViewController
:
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.title = "Title"
}
答案 5 :(得分:0)
在第一个 Viewcontroller 的 ViewDidLoad 中执行以下操作:
edge_ngram