MSU*_*dog 4 objective-c uinavigationbar uinavigationcontroller uinavigationitem ios
我有一个导航控制器,左侧是自定义后退按钮.我以编程方式执行此操作,因此这不是自动布局问题.我的问题是导航控制器标题没有居中,它是在屏幕的右侧.我记得在这一段时间内看到了一个修复,将一些类型的固定空间设置为正确的条形按钮项目,但我现在似乎无法找到类似的东西.
有人可以告诉我如何将导航控制器标题设置为居中,如果标题对于其空间太大,请设置导航栏标题以修复其字体大小以适应标题空间的宽度.这一切都需要以编程方式完成,谢谢!
在导航控制器中,默认情况下,视图控制器A按下当前视图控制器B.A的标题将显示在视图控制器B中的backBarButton中.
导航控制器标题未居中也是因为先前的视图控制器标题太长.
为了解决这个问题,请在viewWillAppear视图控制器A中使用它:
self.navigationItem.backBarButtonItem= UIBarButtonItem(title: "",
style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem!.title = ""`
Run Code Online (Sandbox Code Playgroud)
非常感谢您的回答,它们对帮助我找到解决方案很有用。我的解决方案是使用导航控制器的 titleView 属性。它设置标题而无需经历制作自定义 UIView 的麻烦,并且 setAdjustsFontSizeToFitWidth 属性解决了我的字体大小太大的问题。我添加了一些额外的格式以使其看起来不错,但我不会发布它,因为它与我的问题无关。这是我正在使用的代码:
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, self.view.frame.size.width-60, self.navigationController.navigationBar.frame.size.height)];
titleLabel.text = @"This is my big, long title";
titleLabel.textColor = [UIColor blackColor];
titleLabel.textAlignment = UITextAlignmentCenter;
[titleLabel setAdjustsFontSizeToFitWidth:YES];
self.navigationItem.titleView = titleLabel;
Run Code Online (Sandbox Code Playgroud)