gpt4 book ai didi

ios - 恢复状态导航 Controller 后后退按钮标题被截断

转载 作者:行者123 更新时间:2023-11-29 04:32:05 25 4
gpt4 key购买 nike

当我尝试在启动之间恢复 UINavigationController 的状态时,我遇到了 UIBarButtonItem/UINavigationBar 的一些奇怪行为。

下面的代码片段显示了如何恢复导航 Controller 的状态。此代码片段在 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];
}

结果是后退按钮标题由于某种原因被截断。当导航 Controller 以正常方式使用时,不会出现此行为。

请注意,截断不是由于导航栏中标题的大小造成的。正如我之前提到的,当我不使用这个状态恢复逻辑时,后栏按钮的标题显示正常。

我还尝试将恢复代码放入viewWillAppear方法中,或者通过创建自定义后栏按钮来更改后栏按钮的标题,但这些方法都没有解决问题。

enter image description here

最佳答案

我怀疑问题是由于在父级显示 View 之前插入 Controller 造成的。我相信您可能会通过以下方法取得一些成功,尽管这需要一些工作。

  • 当您要恢复状态时,请隐藏 Root View Controller 中的导航栏,并显示启动图像而不是正常内容。

  • 当 Root View Controller 获取“viewDidAppear”时,然后在主队列上使用调度 block ,并推送其他 Controller ,这些 Controller 也配置为隐藏导航栏并显示启动图像。

    <
  • 当您到达要显示的 View Controller 时,此时将显示真实 View 并启用显示导航栏。

这是一种或多或少执行系统正在执行的操作的压缩方式,在推送另一个 View 之前始终让父 View 至少到达“viewDidAppear”。

关于ios - 恢复状态导航 Controller 后后退按钮标题被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11599635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com