Skip to content

Commit

Permalink
feat: mostTopViewController(of:) 구현 (#323)
Browse files Browse the repository at this point in the history
- 가장 위의 뷰컨트롤러를 반환하는 메서드 추가
  • Loading branch information
hyun99999 committed Jan 24, 2023
1 parent 96717d2 commit 6788633
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
4 changes: 4 additions & 0 deletions NADA-iOS-forRelease.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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 */; };
Expand Down Expand Up @@ -250,6 +251,7 @@
F82FF8242702000000E57F8B /* RequiredFlavorCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RequiredFlavorCollectionViewCell.xib; sourceTree = "<group>"; };
F83206A826F61E3700D61711 /* FrontCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontCardCell.swift; sourceTree = "<group>"; };
F83206A926F61E3700D61711 /* FrontCardCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FrontCardCell.xib; sourceTree = "<group>"; };
F835EF6E29800F51001ABAAF /* UIApplication+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Extension.swift"; sourceTree = "<group>"; };
F84BAF9C26FDB417004CA335 /* CardCreationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardCreationViewController.swift; sourceTree = "<group>"; };
F84BAFAB26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontCardCreationCollectionViewCell.swift; sourceTree = "<group>"; };
F84BAFAC26FDB543004CA335 /* FrontCardCreationCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FrontCardCreationCollectionViewCell.xib; sourceTree = "<group>"; };
Expand Down Expand Up @@ -944,6 +946,7 @@
F8719DDA274F92E90081AD51 /* UITextField+Extension.swift */,
F8D74DD7276C7FB60071E5FC /* UIImageView+Extension.swift */,
7734D5B72777A8E8004360E4 /* String+Extension.swift */,
F835EF6E29800F51001ABAAF /* UIApplication+Extension.swift */,
);
path = Extensions;
sourceTree = "<group>";
Expand Down Expand Up @@ -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 */,
Expand Down
Original file line number Diff line number Diff line change
@@ -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
}
}

0 comments on commit 6788633

Please sign in to comment.