当我尝试在启动之间恢复 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方法中,或者通过创建自定义后退栏按钮来更改后退栏按钮的标题,但这些方法都没有解决问题。
