当我尝试在启动之间恢复UINavigationController的状态时,我遇到了UIBarButtonItem/UINavigationBar的一些奇怪行为。在恢复状态导航控制器后截断后退按钮标题
下面的代码片段显示了我如何恢复导航控制器的状态。此代码片段在viewDidLoad方法中执行。
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
if ([ud objectForKey:HBStateRestorationQuoteSelection]) {
NSInteger index = [ud integerForKey:HBStateRestorationQuoteSelection];
// Fetch Quote
NSDictionary *quote = [self.quotes objectAtIndex:index];
// Initialize Quote View Controller
HBQuoteViewController *vc = [[HBQuoteViewController alloc] initWithNibName:@"HBQuoteViewController" bundle:[NSBundle mainBundle]];
vc.quote = quote;
// Push Quote View Controller Onto Navigation Stack
[self.navigationController pushViewController:vc animated:NO];
}
结果是由于某种原因截断了后退按钮标题。导航控制器以正常方式使用时,此行为不存在。
请注意,截断不是由于导航栏中标题的大小。正如我前面提到的,当我不使用这种状态恢复逻辑时,后面条按钮的标题显示正常。
我也尝试将恢复代码放在viewWillAppear方法中,或者通过创建自定义后退按钮来更改后栏按钮的标题,但这些方法都不能解决问题。