我想在我的应用程序顶部创建一个导航栏。我创建了一个导航控制器 - >标签栏控制器 - >导航控制器 - >表控制器
我也在我的控制器的viewDidLoad()中尝试了这段代码:
self.navigationController.navigationBar.topItem.title = "some title"
self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
self.navigationItem.title = "YourTitle"
没有它起作用 - 我做错了什么? :/
答案 0 :(得分:34)
您可以尝试这样的事情:
self.title = "Your Title"
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
self.navigationItem.leftBarButtonItem = homeButton
self.navigationItem.rightBarButtonItem = logButton
答案 1 :(得分:2)
我相信您正在寻找titleView
。
尝试:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
答案 2 :(得分:1)
我很确定你可以在viewDidLoad中设置表控制器的标题,这是导航栏中显示的标题。
这个答案解释了一个略有不同的问题,但概念是相同的:
答案 3 :(得分:0)
如果您想根据自己的意愿设置&#34; UINavigationBar&#34; 请非常安全地使用它,快速语言如此简单,希望它对您有所帮助。< / p>
第1步: -
在swift中创建一个类别,只需继续&#34;新文件&#34; 并添加&#34;简单快捷的类&#34; 并给出它命名为&#34; MyCustomNavBarCategory.swift&#34;
第2步: -
只需&#34;清理课程(删除此课程中的所有代码)&#34; 和&#34;将我的代码粘贴到下面&#34; : -
//课程将从以下行开始从此处开始复制
让SCREEN_HEIGHT = UIScreen.mainScreen()。bounds.size.height
导入UIKit
扩展名UINavigationBar {
//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
NSLog("%f", SCREEN_HEIGHT*0.06);
let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
return newSize;
}
//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
for var view in self.subviews
{
NSLog("view %@", view);
let str :String = view.classForCoder.description();
if(str == "UILabel")
{
//play with title view frame
var f = view.frame;
f.origin.y = self.frame.size.height/2 - view.bounds.size.height/2 ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
else if(str == "UIButton")
{
//play with buttons of navigation bar view frame
var f = view.frame;
f.origin.y = (self.frame.size.height/2) - (view.bounds.size.height/2) ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
}
}
}
// 类将在上面的上方停止复制代码,然后将其移至&#34; MyCustomNavBarCategory.swift&#34; 。它很享受;)。
第3步: - 现在,您可以将任何框架设置为此类&#34; UINavigationBar中任何UINavigationBar的对象,如果您将非常谨慎地实施它#34; 。