diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 0079a523..f7bb2bb6 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -104,6 +104,7 @@ F82FF8262702000000E57F8B /* RequiredFlavorCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F82FF8242702000000E57F8B /* RequiredFlavorCollectionViewCell.xib */; }; F83206AA26F61E3700D61711 /* FrontCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F83206A826F61E3700D61711 /* FrontCardCell.swift */; }; F83206AB26F61E3700D61711 /* FrontCardCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F83206A926F61E3700D61711 /* FrontCardCell.xib */; }; + F835EF6F29800F51001ABAAF /* UIApplication+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F835EF6E29800F51001ABAAF /* UIApplication+Extension.swift */; }; F84BAF9D26FDB417004CA335 /* CardCreationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84BAF9C26FDB417004CA335 /* CardCreationViewController.swift */; }; F84BAFAD26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84BAFAB26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift */; }; F84BAFAE26FDB543004CA335 /* FrontCardCreationCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F84BAFAC26FDB543004CA335 /* FrontCardCreationCollectionViewCell.xib */; }; @@ -250,6 +251,7 @@ F82FF8242702000000E57F8B /* RequiredFlavorCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RequiredFlavorCollectionViewCell.xib; sourceTree = ""; }; F83206A826F61E3700D61711 /* FrontCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontCardCell.swift; sourceTree = ""; }; F83206A926F61E3700D61711 /* FrontCardCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FrontCardCell.xib; sourceTree = ""; }; + F835EF6E29800F51001ABAAF /* UIApplication+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Extension.swift"; sourceTree = ""; }; F84BAF9C26FDB417004CA335 /* CardCreationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCreationViewController.swift; sourceTree = ""; }; F84BAFAB26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontCardCreationCollectionViewCell.swift; sourceTree = ""; }; F84BAFAC26FDB543004CA335 /* FrontCardCreationCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FrontCardCreationCollectionViewCell.xib; sourceTree = ""; }; @@ -944,6 +946,7 @@ F8719DDA274F92E90081AD51 /* UITextField+Extension.swift */, F8D74DD7276C7FB60071E5FC /* UIImageView+Extension.swift */, 7734D5B72777A8E8004360E4 /* String+Extension.swift */, + F835EF6E29800F51001ABAAF /* UIApplication+Extension.swift */, ); path = Extensions; sourceTree = ""; @@ -1126,6 +1129,7 @@ F8C83FCB272FA32C0009DF0D /* GroupService.swift in Sources */, F858079E2700354E00872484 /* BackgroundCollectionViewCell.swift in Sources */, F8C83FBD272F9F430009DF0D /* GenericResponse.swift in Sources */, + F835EF6F29800F51001ABAAF /* UIApplication+Extension.swift in Sources */, 398413B7274A7A1E005550BC /* AddGroupBottomSheetViewController.swift in Sources */, 77DFB871274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift in Sources */, 7713E8482752E2A900724C8B /* SelectGroupBottomSheetViewController.swift in Sources */, diff --git a/NADA-iOS-forRelease/Resouces/Extensions/UIApplication+Extension.swift b/NADA-iOS-forRelease/Resouces/Extensions/UIApplication+Extension.swift new file mode 100644 index 00000000..c9500d47 --- /dev/null +++ b/NADA-iOS-forRelease/Resouces/Extensions/UIApplication+Extension.swift @@ -0,0 +1,34 @@ +// +// UIApplication+Extension.swift +// NADA-iOS-forRelease +// +// Created by kimhyungyu on 2023/01/24. +// + +import UIKit + +extension UIApplication { + public class func mostTopViewController(of base: UIViewController? = nil) -> UIViewController? { + var baseVC: UIViewController? + + if base != nil { + baseVC = base + } else { + baseVC = (UIApplication.shared.connectedScenes + .compactMap { $0 as? UIWindowScene } + .flatMap { $0.windows } + .first { $0.isKeyWindow })?.rootViewController + } + + if let naviController = baseVC as? UINavigationController { + return mostTopViewController(of: naviController.visibleViewController) + } else if let tabbarController = baseVC as? UITabBarController, + let selected = tabbarController.selectedViewController { + return mostTopViewController(of: selected) + } else if let presented = baseVC?.presentedViewController { + return mostTopViewController(of: presented) + } + + return baseVC + } +}