gpt4 book ai didi

iphone - UINavigationController 不弹出 UINavigationBar 项目

转载 作者:行者123 更新时间:2023-12-03 19:47:43 25 4
gpt4 key购买 nike

我遇到一个问题,当 UINavigationController 弹出 View Controller 时,我的 UINavigationBar 没有弹出它的项目。

我查看了堆栈,观察到以下情况:

  • 预计分配的导航 Controller 数量(在仪器中检查)
  • 堆栈上的 Controller 数量正确。 (调试日志记录)
  • 导航项不会弹出。 (调试日志记录)

这就是我所做的。

调用 super 后,我将一些日志语句弹出到 viewDidLoad 方法中。

NSLog(@"%@", [self navigationController]);
NSLog(@"%@", [[self navigationController] viewControllers]);
NSLog(@"%@", [[self navigationController] navigationBar]);
NSLog(@"%@", [[[self navigationController] navigationBar] items]);

加载初始 View 后。

2009-10-09 16:42:51.706 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:42:51.720 Bob[11657:207] (
<MediaBrowser: 0x2354c0>
)
2009-10-09 16:42:51.742 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:42:51.758 Bob[11657:207] (
<UINavigationItem: 0x242d60>
)

一切看起来都不错。按下第二个 Controller 。

2009-10-09 16:43:11.800 Bob[11657:207] -[MediaBrowser beginLoading] [Line 261] 
2009-10-09 16:43:12.320 Bob[11657:207] -[MediaBrowser loadingComplete] [Line 269]
2009-10-09 16:43:12.587 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:43:12.654 Bob[11657:207] (
<MediaBrowser: 0x2354c0>,
<MediaBrowser: 0x2c1cc0>
)
2009-10-09 16:43:12.685 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:43:12.734 Bob[11657:207] (
<UINavigationItem: 0x242d60>,
<UINavigationItem: 0x2c63b0>
)

这里没有什么意外的。按下第三个 Controller 。

2009-10-09 16:43:19.934 Bob[11657:207] -[MediaBrowser beginLoading] [Line 261] 
2009-10-09 16:43:20.388 Bob[11657:207] -[MediaBrowser loadingComplete] [Line 269]
2009-10-09 16:43:20.928 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:43:20.962 Bob[11657:207] (
<MediaBrowser: 0x2354c0>,
<MediaBrowser: 0x2c1cc0>,
<MediaBrowser: 0x4027e20>
)
2009-10-09 16:43:21.003 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:43:21.039 Bob[11657:207] (
<UINavigationItem: 0x242d60>,
<UINavigationItem: 0x2c63b0>,
<UINavigationItem: 0x4028880>
)

一切都好。现在让我们弹出一个 Controller

2009-10-09 16:43:26.935 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:43:26.945 Bob[11657:207] (
<MediaBrowser: 0x2354c0>,
<MediaBrowser: 0x2c1cc0>
)
2009-10-09 16:43:26.964 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:43:26.977 Bob[11657:207] (
<UINavigationItem: 0x242d60>,
<UINavigationItem: 0x2c63b0>,
<UINavigationItem: 0x4028880>
)

嗯。出了什么问题。 Controller 已弹出,但导航项仍然存在。为了咯咯笑,让我们再推一次。

009-10-09 16:44:05.878 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:44:05.908 Bob[11657:207] (
<MediaBrowser: 0x2354c0>,
<MediaBrowser: 0x2c1cc0>,
<MediaBrowser: 0x407eb00>
)
2009-10-09 16:44:05.951 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:44:05.996 Bob[11657:207] (
<UINavigationItem: 0x242d60>,
<UINavigationItem: 0x2c63b0>,
<UINavigationItem: 0x4028880>,
<UINavigationItem: 0x407f280>
)

Controller 堆栈看起来不错,导航项堆栈有很多麻烦。让我们最后一次弹出吧。

2009-10-09 16:44:17.770 Bob[11657:207] <UINavigationController: 0x243bb0>
2009-10-09 16:44:17.776 Bob[11657:207] (
<MediaBrowser: 0x2354c0>,
<MediaBrowser: 0x2c1cc0>
)
2009-10-09 16:44:17.785 Bob[11657:207] <UINavigationBar: 0x243e50; frame = (0 20; 320 44); autoresize = W; layer = <CALayer: 0x243ed0>>
2009-10-09 16:44:17.793 Bob[11657:207] (
<UINavigationItem: 0x242d60>,
<UINavigationItem: 0x2c63b0>,
<UINavigationItem: 0x4028880>,
<UINavigationItem: 0x407f280>
)

所以 Controller 堆栈没问题。另一方面,导航项目存在一些问题。

我被难住了。我确信我正在做一些奇怪/怪异/错误的事情,但是如果我能看到它,那该死的。我要做的唯一操作是准备(通过我的 Controller navigationItem 属性)一个自定义的 rightBarItem。

如果你已经看到这里了,谢谢。如果能想到我可能会从这里走向何方,我们将不胜感激。

最佳答案

成功了。

事实证明做了一些愚蠢的事情。

我在 NSMutableArray 的内部类别中添加了一个 pop 方法。该方法未正确弹出。 UINavigationBar 还必须向 NSMutableArray 添加 pop 方法。我的问题在于赢得并破坏了 UIBarItem 的流行。

关于iphone - UINavigationController 不弹出 UINavigationBar 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542040/

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