gpt4 book ai didi

ios - Three20 的 TTNavigator 和委托(delegate)模式

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

我正在与一些想要使用 TTNavigator 而不是 Storyboards 或老式的 UINavigationController 推送的人合作一个项目。对我来说很好,除了我们应用程序中的一些 View Controller 正在使用委托(delegate)模式相互通信。我不确定在使用 TTNavigator 时如何保留该模式。可能吗?

问我问题的另一种方式是:是否可以从告诉 TTNavigator 打开一个新的 actionURL 到该目标 View Controller 的 View Controller 内访问目标 View Controller ?

例如,我有一个 View Controller 需要来自用户的图像。为了获得它,它启动了一个新的 View Controller ,它带有一个允许用户获取图像的相机 UI。通常,我会将第一个 View Controller 设置为相机 View Controller 的委托(delegate)。当用户选择图像时,相机 View Controller 将选择告知代理,代理抓取图像并将相机 View Controller 从堆栈中弹出。

TTNavigator 似乎没有给我的第一个 View Controller 一个与相机 View Controller 交互的机会。我看到的一种方法是让第一个 View Controller 将自己设置为 TTNavigator 的委托(delegate),这将导致 TTNavigator 让我看到它即将推送的 View Controller 。这是处理此问题的最佳方式吗?

最佳答案

可以但不推荐

您可以在“查询”中传递数据。您当然可以传递原始 viewController,然后将其连接到目标 viewController 的构造函数中。它松散耦合,可以正常工作。不过,它并不漂亮。

http://three20.info/article/2010-10-06-URL-Based-Navigation#nativeparams

或者,您可以使用 viewControllerForURL: 直接从 TTNavigator 检索 viewController,然后推送该 viewController。也不好看

我在很多项目中都使用了 TTNavigator,但最后的实现比它的值(value)要麻烦得多。我们试图让它在 iPad 项目上运行,并不断与库进行斗争。底线是 iOS 应用程序不是网络应用程序,并且没有通用的策略将 url 映射到自定义应用程序中的多屏幕导航。这对于每个页面都是无状态的并且存在于结构化语义架构(希望如此)中的网络来说非常有意义,但是对于丰富的移动应用程序,特别是多 Pane iPad 应用程序,这些细节不容易编码在 url 中。您最好构建一个不太复杂的导航管理子系统,然后根据需要映射显式 url。

关于ios - Three20 的 TTNavigator 和委托(delegate)模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969310/

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