Объекты среды внедряются по типам, поэтому вы можете внедрить отдельно представление модели и интегратор, как показано ниже
struct View1<VC1: UIViewController>: View {
@EnvironmentObject var viewModel: ViewModel1
@EnvironmentObject var iterator: Interactor1<VC1>
...
, и они будут доступны для всех подпредставлений (как, но независимо, на основе объявления), например
struct SubView1<VC1: UIViewController>: View { // only with view model
@EnvironmentObject var viewModel: ViewModel1
struct SubView2<VC1: UIViewController>: View { // only with iterator
@EnvironmentObject var iterator: Interactor1<VC1>
и, наконец, и требуется, для root вида оба должны быть введены в конструкцию, как (поцарапано)
View1(...)
.environmentObject(ViewModel1(...))
.environmentObject(Interactor1(...))
порядок не имеет значения, так как введен по типу.
Протестировано с Xcode 11.2 / iOS 13.2