Skip to content

Commit 97ee7fa

Browse files
committed
refactor : #163 네비게이션 로직 수정
1 parent 8c9401c commit 97ee7fa

File tree

5 files changed

+18
-9
lines changed

5 files changed

+18
-9
lines changed

Spoony-iOS/Spoony-iOS/Resource/Tab/NavigationManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ final class NavigationManager: ObservableObject {
2020
func build(_ view: ViewType) -> some View {
2121
switch view {
2222
case .searchView:
23-
SearchView(navigationManager: self)
23+
SearchView()
2424
case .locationView:
2525
Home()
2626
case .detailView(let postId):

Spoony-iOS/Spoony-iOS/Source/Feature/Home/Home.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct Home: View {
8383
}
8484
}
8585
}
86-
} // ZStack 닫기
86+
}
8787
.navigationBarHidden(true)
8888
.task {
8989
isBottomSheetPresented = true

Spoony-iOS/Spoony-iOS/Source/Feature/Search/SearchStore.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// Created by 이지훈 on 1/24/25.
66
//
77

8-
import Foundation
98
import SwiftUI
109

1110
@MainActor
@@ -14,7 +13,7 @@ final class SearchStore: ObservableObject {
1413
@Published private(set) var model: SearchModel
1514

1615
private let searchService: SearchService
17-
private let navigationManager: NavigationManager
16+
private var navigationManager: NavigationManager
1817

1918
init(navigationManager: NavigationManager) {
2019
self.model = SearchModel()
@@ -123,6 +122,9 @@ final class SearchStore: ObservableObject {
123122
}
124123
}
125124
}
125+
func updateNavigationManager(_ manager: NavigationManager) {
126+
navigationManager = manager
127+
}
126128

127129
private func saveRecentSearches() {
128130
UserManager.shared.recentSearches = model.recentSearches

Spoony-iOS/Spoony-iOS/Source/Feature/Search/SearchView.swift Spoony-iOS/Spoony-iOS/Source/Feature/Search/Views/SearchView.swift

+12-5
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@
88
import SwiftUI
99

1010
struct SearchView: View {
11-
@EnvironmentObject private var navigationManager : NavigationManager
11+
@EnvironmentObject private var navigationManager: NavigationManager
1212
@StateObject private var store: SearchStore
1313
@FocusState private var isSearchFocused: Bool
1414

15-
init(navigationManager: NavigationManager) {
16-
_store = StateObject(wrappedValue: SearchStore(navigationManager: navigationManager))
15+
init() {
16+
let tempNavigationManager = NavigationManager()
17+
_store = StateObject(wrappedValue: SearchStore(navigationManager: tempNavigationManager))
18+
}
19+
20+
private var initStore: SearchStore {
21+
SearchStore(navigationManager: navigationManager)
1722
}
1823

1924
var body: some View {
@@ -27,6 +32,7 @@ struct SearchView: View {
2732
),
2833
onBackTapped: {
2934
store.dispatch(.clearSearch)
35+
navigationManager.pop(1)
3036
},
3137
tappedAction: {
3238
store.dispatch(.search)
@@ -44,6 +50,7 @@ struct SearchView: View {
4450
}
4551
.navigationBarHidden(true)
4652
.onAppear {
53+
store.updateNavigationManager(navigationManager)
4754
if store.model.isFirstAppear {
4855
isSearchFocused = true
4956
store.dispatch(.setFirstAppear(false))
@@ -84,7 +91,7 @@ struct SearchView: View {
8491
}
8592
}
8693
}
87-
// Supporting Views
94+
8895
struct EmptyStateView: View {
8996
var body: some View {
9097
VStack(spacing: 0) {
@@ -127,7 +134,7 @@ struct RecentSearchesView: View {
127134
}
128135
.padding(.horizontal, 16)
129136
.padding(.vertical, 12)
130-
137+
131138
VStack(alignment: .leading, spacing: 0) {
132139
ForEach(recentSearches, id: \.self) { search in
133140
HStack {

0 commit comments

Comments
 (0)