Let's say I have a public "content view" in a package.
How would I implement that in an app to replace the default ContentView.
What I am attempting to do is have a complete logic flow within a package, and use this flow inside an app.
With storyboards I am able; in the app, is to access the flow within the framework through the use of storyboard references. As the app launches the framework's view controller is launched.
Is this possible in SwiftUI ?
Thank you
Code Block public struct SwiftUIView: View { public var body: some View { Text("Hello, world from within a package!").padding() } }
How would I implement that in an app to replace the default ContentView.
Code Block struct ContentView: View { var body: some View { Text("Hello, world!").padding() } }
What I am attempting to do is have a complete logic flow within a package, and use this flow inside an app.
With storyboards I am able; in the app, is to access the flow within the framework through the use of storyboard references. As the app launches the framework's view controller is launched.
Is this possible in SwiftUI ?
Thank you
Ok, I figured out how to accomplish what I wanted to do.
First I do not have to remove the original ContentView I just have to modify it to include the new view that is on the package. I did change names a bit so it makes sense (the new Package is called Navigator). So the original ContentView is now:
Now the Package (Navigator) has 2 views. (NavigatorView and DetailView)
So when the app launches, the NetworkView in the Navigator package takes control and you are now following the logic flow within the Package.
I have 2 branches to the following GitHub repo at TestPackages
I hope this helps someone !
Take Care
First I do not have to remove the original ContentView I just have to modify it to include the new view that is on the package. I did change names a bit so it makes sense (the new Package is called Navigator). So the original ContentView is now:
Code Block import SwiftUI import Navigator struct ContentView: View { var body: some View { NavigatorView() } }
Now the Package (Navigator) has 2 views. (NavigatorView and DetailView)
Code Block import SwiftUI public struct NavigatorView: View { let colors = ["Red", "Green", "Blue"] public init() { } @available(iOS 13.0.0, *) public var body: some View { NavigationView { List(colors, id:\.self) { color in NavigationLink(destination: DetailView(color: color)) { Text(color).padding() } } .navigationBarTitle("Colors") } } } struct NavigatorView_Previews: PreviewProvider { @available(iOS 13.0.0, *) static var previews: some View { NavigatorView() } }
Code Block import SwiftUI struct DetailView: View { let color: String @available(iOS 13.0, *) var body: some View { Text(color).padding() .navigationBarTitle(Text(color), displayMode: .inline) } } struct DetailView_Previews: PreviewProvider { @available(iOS 13.0, *) static var previews: some View { DetailView(color: "Red") } }
So when the app launches, the NetworkView in the Navigator package takes control and you are now following the logic flow within the Package.
I have 2 branches to the following GitHub repo at TestPackages
internal - has the package within the same project locally
external - is using the external Navigator package
I hope this helps someone !
Take Care