I'm using @ViewBuilder so I will be allowed to use statements that unwrap values within my views. But I also like to return the body of the view in a return statement, so I can run other code before view code is run.
Like this:
@ViewBuilder
var body: some View {
// do some stuff here like set variables differently for iOS and macOS, load different view conditionally based on settings etc…
return VStack { // compiler warning: "Application of result builder 'ViewBuilder' disabled by explicit 'return' statement"
// etc etc…
}
}
So this builds and appears to work fine, but I get a compiler warning that says "Application of result builder 'ViewBuilder' disabled by explicit 'return' statement"
If I apply either of the fixes it suggests, it breaks my code with errors so it can't compile.
I don't understand what the problem is. What does it mean that it's "disabled" when its accomplishing my purpose for using @ViewBuilder just fine? Is there a better way to run the code I want to run before the view?