mirror of
https://github.com/metabolist/metatext.git
synced 2024-11-25 09:41:00 +00:00
Improve presentation state management
This commit is contained in:
parent
16413aa074
commit
e821dd98ac
1 changed files with 17 additions and 1 deletions
|
@ -33,7 +33,7 @@ final class MainNavigationViewController: UITabBarController {
|
||||||
}
|
}
|
||||||
.store(in: &cancellables)
|
.store(in: &cancellables)
|
||||||
|
|
||||||
viewModel.$presentingSecondaryNavigation.removeDuplicates().sink { [weak self] in
|
viewModel.$presentingSecondaryNavigation.sink { [weak self] in
|
||||||
if $0 {
|
if $0 {
|
||||||
self?.presentSecondaryNavigation()
|
self?.presentSecondaryNavigation()
|
||||||
} else {
|
} else {
|
||||||
|
@ -137,6 +137,14 @@ private extension MainNavigationViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
func presentSecondaryNavigation() {
|
func presentSecondaryNavigation() {
|
||||||
|
if let presentedViewController = presentedViewController {
|
||||||
|
if presentedViewController.view.tag == Self.secondaryNavigationViewTag {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
dismiss(animated: true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let secondaryNavigationView = SecondaryNavigationView(viewModel: viewModel)
|
let secondaryNavigationView = SecondaryNavigationView(viewModel: viewModel)
|
||||||
.environmentObject(rootViewModel)
|
.environmentObject(rootViewModel)
|
||||||
let hostingController = UIHostingController(rootView: secondaryNavigationView)
|
let hostingController = UIHostingController(rootView: secondaryNavigationView)
|
||||||
|
@ -160,6 +168,14 @@ private extension MainNavigationViewController {
|
||||||
}
|
}
|
||||||
|
|
||||||
func presentNewStatus(newStatusViewModel: NewStatusViewModel) {
|
func presentNewStatus(newStatusViewModel: NewStatusViewModel) {
|
||||||
|
if let presentedViewController = presentedViewController {
|
||||||
|
if presentedViewController.view.tag == Self.newStatusViewTag {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
dismiss(animated: true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let newStatusViewController = NewStatusViewController(viewModel: newStatusViewModel,
|
let newStatusViewController = NewStatusViewController(viewModel: newStatusViewModel,
|
||||||
rootViewModel: rootViewModel)
|
rootViewModel: rootViewModel)
|
||||||
let navigationController = UINavigationController(rootViewController: newStatusViewController)
|
let navigationController = UINavigationController(rootViewController: newStatusViewController)
|
||||||
|
|
Loading…
Reference in a new issue