iOS 6 UINavigationController 中的奇怪错误

Posted

技术标签:

【中文标题】iOS 6 UINavigationController 中的奇怪错误【英文标题】:Strange Bug in iOS 6 UINavigationController 【发布时间】:2013-05-18 12:36:26 【问题描述】:

我在 ios 中发现了一个奇怪的错误。当我使用 UINavigationController 并推送其他控制器时,titleView 向右移动了多少控制器被推送了

看起来像这样:

我的代码很简单:

self.navigationItem.title = @"Test Title";

在第二种情况下,控制器在viewControllers 堆栈中排名第 5。所有情况下的控制器都是相同的。

我在 AppDelegate 中使用 appearance 代替 UIBarButtonItem

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, 0) forBarMetrics:UIBarMetricsDefault];

【问题讨论】:

当文本足够长(但在框架中)时,它会发生 100%。 如何实现您的(自定义?)后退按钮?会不会是每个嵌套视图控制器的大小都会增加? 是的。这是我的坏事。 backButton 标题太长,这就是原因。但是看不懂,看我的编辑 【参考方案1】:

我用一些技巧来修复它=)

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:@UITextAttributeFont: [UIFont systemFontOfSize:0.1]
                                                                                        forState:UIControlStateNormal];

【讨论】:

以上是关于iOS 6 UINavigationController 中的奇怪错误的主要内容,如果未能解决你的问题,请参考以下文章

功能差异,UINavigationController vs Only Storyboard Segue

在 UINavigationController 中设置自定义导航栏类

在 UINavigationController 中设置自定义导航栏类

在 Swift 2.0 中设置 UINavigationController 栏标题

UINavigationController -> UIViewController -> UIView -> UITableViewController?

用动画隐藏导航控制器和标签栏控制器