我有一个导航控制器,左侧是自定义后退按钮。我以编程方式执行此操作,因此这不是自动布局问题。我的问题是导航控制器标题没有居中,它是在屏幕的右侧。我记得在这一段时间内看到了一个修复,将一些类型的固定空间设置为正确的条形按钮项目,但我现在似乎无法找到类似的东西。
有人可以告诉我如何将导航控制器标题设置为居中,如果标题对于其空间来说太大,请设置导航栏标题以修复其字体大小以适应标题空间的宽度。这一切都需要以编程方式完成,谢谢!
答案 0 :(得分:7)
在导航控制器中,默认情况下,视图控制器A按下当前视图控制器B.A的标题将显示在视图控制器B的backBarButton中。
导航控制器标题未居中也是因为前一个视图控制器标题太长。
要解决这个问题,请在视图控制器A的viewWillAppear
中使用它:
self.navigationItem.backBarButtonItem= UIBarButtonItem(title: "",
style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem!.title = ""`
答案 1 :(得分:3)
您必须在导航中添加自定义视图
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 0, 150, 44)];
UILabel *titleLabel=[[UILabel alloc] initWithFrame:CGRectMake(10, 165,370, 25)];
titleLabel.text=@"Home";
titleLabel.textColor=[UIColor whiteColor];
[view addSubview:titleLabel];
[self.navigationController.navigationBar addSubview:view];
答案 2 :(得分:2)
试试这个,它会对你有帮助并且经过测试。
目标C版
UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
[button addTarget:self action:@selector(yourSelector:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"<" forState:UIControlStateNormal];
button.titleEdgeInsets = UIEdgeInsetsMake(-3, -15, 3, 15);
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithCustomView:button];
self.navigationItem.leftBarButtonItem = leftItem;
Swift版本
button = UIButton(frame: CGRectMake(0, 0,50, 50))
button?.addTarget(self, action: "backButtonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
button?.setTitle("<", forState: .Normal)
button?.titleLabel?.font = UIFont(name: kFontHelveticaNeueRegular, size: 30)
button?.titleEdgeInsets = UIEdgeInsetsMake(-3, -15, 3, 15)
button?.setTitleColor(UIColor.whiteColor(), forState: .Normal)
var leftItem = UIBarButtonItem(customView: button!)
controller.navigationItem.leftBarButtonItem = leftItem
答案 3 :(得分:2)
在Utilities类中添加以下方法
[Utilities setTitle:@"Title for View Controller" forViewController:self];
跨视图控制器使用如下
tk.Label.__init__
答案 4 :(得分:1)
添加leftbarbutton和Rightbarbutton。通常后退按钮存在。如果添加一个空的右侧栏按钮,标题将居中。