gpt4 book ai didi

objective-c - iOS:创建 UINavigationController 的副本

转载 作者:行者123 更新时间:2023-11-29 13:29:36 24 4
gpt4 key购买 nike

创建 UINavigationController 的精确对象副本是可能的吗?我看过使用 copyWithZone: 复制对象的示例,但我对如何使用它来复制我的 UINavigationController 感到困惑。

有什么帮助吗?

最佳答案

UINavigationController 不符合 NSCopying 协议(protocol),所以你不能使用 copyWithZone:copy 在上面。

如果您希望拥有一个可以在整个应用程序中使用的自定义 UINavigationController,那么您应该将其子类化,然后在每次需要新实例时创建该子类的新实例,例如当你创建一个新的模态视图 Controller 时。

编辑:如果你想保留以前导航 Controller 的 View Controller ,那么你可以这样做(如果需要,使用子类导航 Controller ):

UINavigationController *newNavigationController = [[UINavigationController alloc] init];
[newNavigationController setViewControllers:oldNavigationController.viewControllers animated:NO];

这将对 viewController 进行浅拷贝,即您将引用原始导航 Controller 的 View Controller ,而不是副本。如果你想在 View Controller 上进行深拷贝,那么这将复杂得多,并且需要为每个 View Controller 指定特定的复制代码。 (有关详细信息,请参阅 here)。

关于objective-c - iOS:创建 UINavigationController 的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190967/

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