问题标签 [coordinator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
96 浏览

swiftui - 如何创建一个 SwiftUI TextView,它会在创建新视图时更新绑定

我曾尝试使用 Coordinator 类创建一个 TextView 但这似乎总是保留与原始对象的绑定。

如果我在这样的 SwiftUI 视图中使用它,那么如果我在主/详细信息排列中使用 DocView 并传入一个新的 Doc 对象,那么 TextView 将始终保持与第一个文档的绑定。

因此,如果有文档或项目列表,则选择第二个或第三个文档并为该文档创建DOCVIEW时,对文本视图的任何编辑都将更新第一个文档详细信息。

因此,似乎协调器或其他东西保留了原始绑定,而不是更新以反映 DocView 变量 doc 的最新实例。

我是否误解了 Coordinator 应该如何工作,如果是这样,我如何确保在创建新的 DocView(doc: newdocobject) 时更新绑定。

实际上,TextView 将显示 newdocobject 详细信息,但任何时候进行任何编辑,目标似乎仍然是原始对象

编辑:示例应用程序https://duncangroenewald.com/files/SampleApps/TextView.zip

问题的更好说明 https://duncangroenewald.com/files/SampleApps/TextView2.zip

编辑:我认为 Apples 实现 NSAttributedString 绑定可能存在错误。

通过执行以下操作,我似乎已经克服了这个问题。

没有比这更糟糕的了——SwiftUI 似乎对它的绑定完全感到困惑,并保留了对前一个对象的引用。

我的解决方法是在全局变量(单例)中保留对视图中显示的选定对象的引用,并对单例中保存的对象执行 get{} set{}。

这现在似乎工作只是找到。我已经向 Apple 记录了错误报告。不确定这是否与 NSAttributedString 或是否与 NSViewRepresentable 有关。

所以绑定现在看起来像这样

而这两种方法是这样的。请注意,我仍然必须复制属性字符串!

func get()->NSAttributedString {

} func set(_ attribString: NSAttributedString) {

}

0 投票
1 回答
40 浏览

ios - 带有协调器模式的 TabBar 控制器

我一直在关注关于协调器模式的 Paul Hudson 教程,并遇到了一个实例,即使我有导航控制器实例,我也必须在呈现标签栏控制器后使用标签栏控制器,但我无法从一个地方移动到另一个地方其他。

我有一个主要协调员来启动应用程序流程。

我的标签栏协调员为每个页面部分都有单独的协调员,这是我的标签栏协调员。

例如,这是上面提到的个人协调员

当我尝试从这些单独的控制器中移动时会出现问题。