大多数 SwiftUI 修饰符会修改层次结构中位于其下方的视图,但有些修饰符会修改层次结构中位于其上方的视图。在下面的示例中.navigationTitle
,、.toolbar
和.presentationDetents
正在修改它们所呈现的导航堆栈和工作表中的元素,但它们安装在文本视图上。
从概念上讲,这些修饰符在内部是如何工作的?此外,我该如何创建自己的修饰符?
我正在创建自己的导航堆栈(出于无关紧要的原因),并且有一种方法看起来很有希望,但我对此表示怀疑。我当前的方法是在环境对象上设置属性的视图修饰符,环境对象是自定义导航堆栈的视图模型。