투케이2K

385. (ios/swift5) [유틸 파일] startActivity : 액티비티 인텐트 이동 수행 메소드 본문

IOS

385. (ios/swift5) [유틸 파일] startActivity : 액티비티 인텐트 이동 수행 메소드

투케이2K 2023. 12. 2. 20:45

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // MARK: [액티비티 인텐트 이동 수행 메소드]
    // -----------------------------------------------------------------------------------------
    // [호출 방법 : self.startActivity(activity: "A_WebviewVC")]
    // -----------------------------------------------------------------------------------------
    func startActivity(C_: String = #file, activity: String) {
        
        DispatchQueue.main.async {
            
            if (C_Util().stringNotNull(str: activity) == true){
             
                // [클래스 명칭 확인]
                var className = ""
                className = className + String(describing: "\(C_)")
                if className.contains("/") == true {
                    let arr = className.split(separator: "/")
                    className = String(describing: "\(arr[arr.count-1])")
                }
                
                
                // [분기 처리 수행]
                if #available(iOS 13.0, *) {
                    // [스토리보드 사용 : present 방식 : A_VC = 스토리보드 아이디 지정 / as = 컨트롤러 지정]
                    guard let A_VC = self.storyboard?.instantiateViewController(identifier: activity)
                    else {
                        self.showAlert(
                            type: 0,
                            tittle: S_FinalMsg.AL_TITLE_NORMAL,
                            content: "[Ios Hight] : View Is Null",
                            okBtb: S_FinalMsg.AL_OK,
                            noBtn: ""
                        )
                        
                        return
                    }
                    
                    A_VC.modalPresentationStyle = .fullScreen // 전체화면 (기본은 팝업형태)
                    self.present(A_VC, animated: false, completion: nil) // Intro >> Main 인텐트 이동 실시
                }
                // -----------------------------------------
                else {
                    // [스토리보드 사용 : present 방식 : A_VC = 스토리보드 아이디 지정 / as = 컨트롤러 지정]
                    guard let A_VC = self.storyboard?.instantiateViewController(withIdentifier: activity)
                    else {
                        self.showAlert(
                            type: 0,
                            tittle: S_FinalMsg.AL_TITLE_NORMAL,
                            content: "[Ios Low] : View Is Null",
                            okBtb: S_FinalMsg.AL_OK,
                            noBtn: ""
                        )
                        
                        return
                    }
                            
                    A_VC.modalPresentationStyle = .fullScreen // 전체화면 (기본은 팝업형태)
                    self.present(A_VC, animated: false, completion: nil) // Intro >> Main 인텐트 이동 실시
                }
                
                S_Log._D_(description: "액티비티 인텐트 이동 수행", data: ["\(className) >> \(activity)"])
                
            }
            else {
                self.showAlert(
                    type: 0,
                    tittle: S_FinalMsg.AL_TITLE_NORMAL,
                    content: "[Ios Intent] : Activity Is Null",
                    okBtb: S_FinalMsg.AL_OK,
                    noBtn: ""
                )
            }
            
        }
        
    }
 

[결과 출력]


반응형
Comments