From a96bac0796640e38c15d11e4beeab9b20bed3b9d Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 9 Jul 2019 00:30:47 +0100 Subject: [PATCH 1/2] A few more run time fixes --- .../Complete/Landmarks/Landmarks/LandmarkList.swift | 3 ++- .../Complete/Landmarks/Landmarks/LandmarkList.swift | 3 ++- .../Complete/Landmarks/Landmarks/LandmarkList.swift | 3 ++- .../SwiftUIDemo/views/users/UsersListView.swift | 3 ++- Other Projects/UINote/SwiftUINote/Views/NoteList.swift | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Other Projects/Animating Views And Transitions/Complete/Landmarks/Landmarks/LandmarkList.swift b/Other Projects/Animating Views And Transitions/Complete/Landmarks/Landmarks/LandmarkList.swift index 3ec90d5..c6c21b6 100755 --- a/Other Projects/Animating Views And Transitions/Complete/Landmarks/Landmarks/LandmarkList.swift +++ b/Other Projects/Animating Views And Transitions/Complete/Landmarks/Landmarks/LandmarkList.swift @@ -20,7 +20,8 @@ struct LandmarkList: View { ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink( - destination: LandmarkDetail(landmark: landmark)) { + destination: LandmarkDetail(landmark: landmark) + .environmentObject(self.userData)) { LandmarkRow(landmark: landmark) } } diff --git a/Other Projects/Drawing Paths And Shapes/Complete/Landmarks/Landmarks/LandmarkList.swift b/Other Projects/Drawing Paths And Shapes/Complete/Landmarks/Landmarks/LandmarkList.swift index 3ec90d5..c6c21b6 100755 --- a/Other Projects/Drawing Paths And Shapes/Complete/Landmarks/Landmarks/LandmarkList.swift +++ b/Other Projects/Drawing Paths And Shapes/Complete/Landmarks/Landmarks/LandmarkList.swift @@ -20,7 +20,8 @@ struct LandmarkList: View { ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink( - destination: LandmarkDetail(landmark: landmark)) { + destination: LandmarkDetail(landmark: landmark) + .environmentObject(self.userData)) { LandmarkRow(landmark: landmark) } } diff --git a/Other Projects/Handling User Input/Complete/Landmarks/Landmarks/LandmarkList.swift b/Other Projects/Handling User Input/Complete/Landmarks/Landmarks/LandmarkList.swift index 3ec90d5..c6c21b6 100755 --- a/Other Projects/Handling User Input/Complete/Landmarks/Landmarks/LandmarkList.swift +++ b/Other Projects/Handling User Input/Complete/Landmarks/Landmarks/LandmarkList.swift @@ -20,7 +20,8 @@ struct LandmarkList: View { ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink( - destination: LandmarkDetail(landmark: landmark)) { + destination: LandmarkDetail(landmark: landmark) + .environmentObject(self.userData)) { LandmarkRow(landmark: landmark) } } diff --git a/Other Projects/SwiftUI + Redux/SwiftUIDemo/views/users/UsersListView.swift b/Other Projects/SwiftUI + Redux/SwiftUIDemo/views/users/UsersListView.swift index 20ac0dd..841d829 100755 --- a/Other Projects/SwiftUI + Redux/SwiftUIDemo/views/users/UsersListView.swift +++ b/Other Projects/SwiftUI + Redux/SwiftUIDemo/views/users/UsersListView.swift @@ -24,7 +24,8 @@ struct UsersListView : View { } Section { ForEach(state.usersState.users) {user in - NavigationLink(destination: UserDetailView(userId: user.id)) { + NavigationLink(destination: UserDetailView(userId: user.id) + .environmentObject(self.state)) { UserRow(user: user) } } diff --git a/Other Projects/UINote/SwiftUINote/Views/NoteList.swift b/Other Projects/UINote/SwiftUINote/Views/NoteList.swift index 0f70f48..54c12c6 100755 --- a/Other Projects/UINote/SwiftUINote/Views/NoteList.swift +++ b/Other Projects/UINote/SwiftUINote/Views/NoteList.swift @@ -14,7 +14,8 @@ struct NoteList : View { var body: some View { NavigationView { List(userData.notes) { note in - NavigationLink(destination: NoteDetail(note: note)) { + NavigationLink(destination: NoteDetail(note: note) + .environmentObject(self.userData)) { NoteRow(note: note) } } From b8281e5e219487de231b411e07417cd74b2300c8 Mon Sep 17 00:00:00 2001 From: John Holdsworth Date: Tue, 9 Jul 2019 05:08:06 +0100 Subject: [PATCH 2/2] Still more fixes. --- .../Complete/Landmarks/Landmarks/CategoryRow.swift | 4 ++-- .../Complete/Landmarks/Landmarks/Home.swift | 9 ++++----- .../Complete/Landmarks/Landmarks/LandmarkList.swift | 3 ++- .../Complete/Landmarks/Landmarks/SceneDelegate.swift | 10 ++++++---- .../Complete/Landmarks/Landmarks/CategoryRow.swift | 4 ++-- .../Complete/Landmarks/Landmarks/Home.swift | 9 ++++----- .../Complete/Landmarks/Landmarks/LandmarkList.swift | 3 ++- .../Complete/Landmarks/Landmarks/SceneDelegate.swift | 10 ++++++---- .../Complete/Landmarks/Landmarks/CategoryRow.swift | 4 ++-- .../Complete/Landmarks/Landmarks/Home.swift | 10 ++++------ .../Complete/Landmarks/Landmarks/SceneDelegate.swift | 10 ++++++---- 11 files changed, 40 insertions(+), 36 deletions(-) diff --git a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/CategoryRow.swift b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/CategoryRow.swift index d511ffa..b7a9ef5 100755 --- a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/CategoryRow.swift +++ b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/CategoryRow.swift @@ -12,13 +12,13 @@ struct CategoryRow: View { var items: [Landmark] var body: some View { - VStack(alignment: HorizontalAlignment.leading) { + VStack(alignment: .leading) { Text(self.categoryName) .font(.headline) .padding(.leading, 15) .padding(.top, 5) - ScrollView(showsHorizontalIndicator: false) { + ScrollView { HStack(alignment: .top, spacing: 0) { ForEach(self.items.identified(by: \.name)) { landmark in NavigationLink( diff --git a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/Home.swift b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/Home.swift index 9e5ac93..262dfb8 100755 --- a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/Home.swift +++ b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/Home.swift @@ -33,19 +33,18 @@ struct CategoryHome: View { } .listRowInsets(EdgeInsets()) - NavigationButton(destination: LandmarkList()) { + NavigationLink(destination: LandmarkList()) { Text("See All") } } .navigationBarTitle(Text("Featured")) .navigationBarItems(trailing: - PresentationButton( + PresentationLink(destination: Text("User Profile")) { Image(systemName: "person.crop.circle") .imageScale(.large) .accessibility(label: Text("User Profile")) - .padding(), - destination: Text("User Profile") - ) + .padding() + } ) } } diff --git a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/LandmarkList.swift b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/LandmarkList.swift index 3ec90d5..6410d57 100755 --- a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/LandmarkList.swift +++ b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/LandmarkList.swift @@ -20,7 +20,8 @@ struct LandmarkList: View { ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink( - destination: LandmarkDetail(landmark: landmark)) { + destination: LandmarkDetail(landmark: landmark) + .environmentObject(self.userData)) { LandmarkRow(landmark: landmark) } } diff --git a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/SceneDelegate.swift b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/SceneDelegate.swift index 0f5f17e..51057d3 100755 --- a/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/SceneDelegate.swift +++ b/Other Projects/Composing Complex Interfaces/Complete/Landmarks/Landmarks/SceneDelegate.swift @@ -18,10 +18,12 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). // Use a UIHostingController as window root view controller - let window = UIWindow(frame: UIScreen.main.bounds) - window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) - self.window = window - window.makeKeyAndVisible() + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) + self.window = window + window.makeKeyAndVisible() + } } func sceneDidDisconnect(_ scene: UIScene) { diff --git a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/CategoryRow.swift b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/CategoryRow.swift index 1f4fbd8..d7e0cb3 100755 --- a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/CategoryRow.swift +++ b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/CategoryRow.swift @@ -18,10 +18,10 @@ struct CategoryRow: View { .padding(.leading, 15) .padding(.top, 5) - ScrollView(showsHorizontalIndicator: false) { + ScrollView([]) { HStack(alignment: .top, spacing: 0) { ForEach(self.items.identified(by: \.name)) { landmark in - NavigationButton( + NavigationLink( destination: LandmarkDetail( landmark: landmark ) diff --git a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/Home.swift b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/Home.swift index 5237246..91508c8 100755 --- a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/Home.swift +++ b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/Home.swift @@ -33,19 +33,18 @@ struct CategoryHome: View { } .listRowInsets(EdgeInsets()) - NavigationButton(destination: LandmarkList()) { + NavigationLink(destination: LandmarkList()) { Text("See All") } } .navigationBarTitle(Text("Featured")) .navigationBarItems(trailing: - PresentationButton( + PresentationLink(destination: ProfileHost()) { Image(systemName: "person.crop.circle") .imageScale(.large) .accessibility(label: Text("User Profile")) - .padding(), - destination: ProfileHost() - ) + .padding() + } ) } } diff --git a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/LandmarkList.swift b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/LandmarkList.swift index 3ec90d5..6410d57 100755 --- a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/LandmarkList.swift +++ b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/LandmarkList.swift @@ -20,7 +20,8 @@ struct LandmarkList: View { ForEach(userData.landmarks) { landmark in if !self.userData.showFavoritesOnly || landmark.isFavorite { NavigationLink( - destination: LandmarkDetail(landmark: landmark)) { + destination: LandmarkDetail(landmark: landmark) + .environmentObject(self.userData)) { LandmarkRow(landmark: landmark) } } diff --git a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/SceneDelegate.swift b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/SceneDelegate.swift index 0f5f17e..51057d3 100755 --- a/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/SceneDelegate.swift +++ b/Other Projects/Interfacing With UIKit/Complete/Landmarks/Landmarks/SceneDelegate.swift @@ -18,10 +18,12 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). // Use a UIHostingController as window root view controller - let window = UIWindow(frame: UIScreen.main.bounds) - window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) - self.window = window - window.makeKeyAndVisible() + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) + self.window = window + window.makeKeyAndVisible() + } } func sceneDidDisconnect(_ scene: UIScene) { diff --git a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/CategoryRow.swift b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/CategoryRow.swift index 1f4fbd8..b7a9ef5 100755 --- a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/CategoryRow.swift +++ b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/CategoryRow.swift @@ -18,10 +18,10 @@ struct CategoryRow: View { .padding(.leading, 15) .padding(.top, 5) - ScrollView(showsHorizontalIndicator: false) { + ScrollView { HStack(alignment: .top, spacing: 0) { ForEach(self.items.identified(by: \.name)) { landmark in - NavigationButton( + NavigationLink( destination: LandmarkDetail( landmark: landmark ) diff --git a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/Home.swift b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/Home.swift index 5237246..570a4f0 100755 --- a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/Home.swift +++ b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/Home.swift @@ -33,20 +33,18 @@ struct CategoryHome: View { } .listRowInsets(EdgeInsets()) - NavigationButton(destination: LandmarkList()) { + NavigationLink(destination: LandmarkList()) { Text("See All") } } .navigationBarTitle(Text("Featured")) .navigationBarItems(trailing: - PresentationButton( + PresentationLink(destination: ProfileHost()) { Image(systemName: "person.crop.circle") .imageScale(.large) .accessibility(label: Text("User Profile")) - .padding(), - destination: ProfileHost() - ) - ) + .padding() + }) } } } diff --git a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/SceneDelegate.swift b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/SceneDelegate.swift index 0f5f17e..51057d3 100755 --- a/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/SceneDelegate.swift +++ b/Other Projects/Working With UIControls/Complete/Landmarks/Landmarks/SceneDelegate.swift @@ -18,10 +18,12 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). // Use a UIHostingController as window root view controller - let window = UIWindow(frame: UIScreen.main.bounds) - window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) - self.window = window - window.makeKeyAndVisible() + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: CategoryHome().environmentObject(UserData())) + self.window = window + window.makeKeyAndVisible() + } } func sceneDidDisconnect(_ scene: UIScene) {