투케이2K

57. (TWOK/UTIL) [Ios/Objc] C_Ui_View - 팝업창 표시 , UI 뷰 관련 표시 수행 본문

투케이2K 유틸파일

57. (TWOK/UTIL) [Ios/Objc] C_Ui_View - 팝업창 표시 , UI 뷰 관련 표시 수행

투케이2K 2022. 6. 24. 08:04

[설 명]

프로그램 : Ios / Objective-C

설 명 : C_Ui_View - 팝업창 표시 , UI 뷰 관련 표시 수행

 

 

 

[소스 코드]

import Foundation
import UIKit
import SafariServices


@objc class C_UI_View: NSObject {
    
    
    // MARK: - [클래스 설명]
    /*
    // -----------------------------------------
    1. Ui 화면 표시 관련 뷰 정의 클래스
    // -----------------------------------------
    */
    
    
    
    
    
    // MARK: - [클래스 싱글톤 설정 실시]
    @objc static let shared = C_UI_View()
    
    
    
    
    
    // MARK: - [alert 팝업창 표시 수행]
    @objc func showAlert(view: UIViewController, type:Int, tittle:String, content:String, okBtb:String, noBtn:String) {
        
        /*
        // -----------------------------------------
        [showAlert 메소드 설명]
        // -----------------------------------------
        1. 일반 팝업창 수행 메소드
        // -----------------------------------------
        2. type 속성 값 정리 :
           - type == 0 : 일반 알림 표시
        // -----------------------------------------
        3. 호출 방법 :
         // [팝업창 표시 수행 실시]
         [[C_UI_View shared]
          showAlertWithView:
              self
              type:0
              tittle:@"[알림]"
              content:@"내용입니다"
              okBtb:@"확인"
              noBtn:@"취소"
         ];
        // -----------------------------------------
        */
        
        // [메인 큐에서 비동기 방식 실행 : UI 동작 실시]
        DispatchQueue.main.async {
            print("")
            print("====================================")
            print("[C_Ui_View >> showAlert() :: 팝업창 표시 수행 실시]")
            print("-------------------------------")
            print("type :: ", type)
            print("-------------------------------")
            print("tittle :: ", tittle)
            print("-------------------------------")
            print("content :: ", content)
            print("-------------------------------")
            print("okBtb :: ", okBtb)
            print("-------------------------------")
            print("noBtn :: ", noBtn)
            print("====================================")
            print("")
            
            
            // [UIAlertController 객체 정의 실시]
            let alert = UIAlertController(
                title: tittle + "\n",
                message: content + "\n",
                preferredStyle: UIAlertController.Style.alert
            )
            
            
            // [인풋으로 들어온 확인 버튼이 nil 아닌 경우]
            if(okBtb != "" && okBtb.count>0){
                let okAction = UIAlertAction(title: okBtb, style: .default) { (action) in
                    // [확인 버튼 클릭 이벤트 내용 정의 실시]
                    if type == 0 {
                        // [일반 팝업창 알림]
                    }
                    return
                }
                // [버튼 클릭 이벤트 객체 연결]
                alert.addAction(okAction)
            }
            
            
            // [인풋으로 들어온 취소 버튼이 nil 아닌 경우]
            if(noBtn != "" && noBtn.count>0){
                let noAction = UIAlertAction(title: noBtn, style: .default) { (action) in
                    // [취소 버튼 클릭 이벤트 내용 정의 실시]
                    return
                }
                // [버튼 클릭 이벤트 객체 연결]
                alert.addAction(noAction)
            }
            
            
            // [alert 팝업창 활성 실시]
            view.present(alert, animated: false, completion: nil)
        }
    }
    
    
    
    
    
    // MARK: [클립보드 복사 팝업창 호출 처리 메소드]
    @objc func showAlertCopy(view: UIViewController, tittle:String, content:String, okBtb:String, noBtn:String) {
        
        /*
        // -----------------------------------------
        [showAlertCopy 메소드 설명]
        // -----------------------------------------
        1. 클립보드 복사 팝업창 수행 메소드
        // -----------------------------------------
        2. 호출 방법 :
         [[C_UI_View shared]
          showAlertCopyWithView:
              self
              tittle:@"[알림]"
              content:@"복사입니다"
              okBtb:@"확인"
              noBtn:@"취소"
         ];
        // -----------------------------------------
        */
        
        // [메인 큐에서 비동기 방식 실행 : UI 동작 실시]
        DispatchQueue.main.async {
            print("")
            print("====================================")
            print("[C_Ui_View >> showAlertCopy() :: 클립보드 복사 팝업창 표시 수행 실시]")
            print("-------------------------------")
            print("tittle :: ", tittle)
            print("-------------------------------")
            print("content :: ", content)
            print("-------------------------------")
            print("okBtb :: ", okBtb)
            print("-------------------------------")
            print("noBtn :: ", noBtn)
            print("====================================")
            print("")
            
            
            // [UIAlertController 객체 정의 실시]
            let alert = UIAlertController(
                title: tittle + "\n",
                message: content + "\n",
                preferredStyle: UIAlertController.Style.alert
            )
            
            
            // [인풋으로 들어온 확인 버튼이 nil 아닌 경우]
            if(okBtb != "" && okBtb.count>0){
                let okAction = UIAlertAction(title: okBtb, style: .default) { (action) in
                    //----------------------------------
                    // MARK: [확인 버튼 클릭 이벤트 내용 정의 실시 >> 클립보드 복사]
                    UIPasteboard.general.string = content
                    //----------------------------------
                    return
                    //----------------------------------
                }
                alert.addAction(okAction) // 버튼 클릭 이벤트 객체 연결
            }
            
            
            // [인풋으로 들어온 취소 버튼이 nil 아닌 경우]
            if(noBtn != "" && noBtn.count>0){
                let noAction = UIAlertAction(title: noBtn, style: .default) { (action) in
                    // [취소 버튼 클릭 이벤트 내용 정의 실시]
                    return
                }
                alert.addAction(noAction) // 버튼 클릭 이벤트 객체 연결
            }
            
            
            // [alert 팝업창 활성 실시]
            view.present(alert, animated: false, completion: nil)
        }
    }
    
    


    // MARK: - [alert sheet 팝업창 표시 수행]
    @objc func showSheetAlert(view: UIViewController, type:Int, tittle:String, content:String, okBtb:String, noBtn:String) {
        
        /*
        // -----------------------------------------
        [showSheetAlert 메소드 설명]
        // -----------------------------------------
        1. Alert Sheet 표시 팝업창 수행 메소드
        // -----------------------------------------
        2. type 속성 값 정리 :
           - type == 0 : 일반 알림 표시
        // -----------------------------------------
        3. 호출 방법 :
         // [팝업창 표시 수행 실시]
         [[C_UI_View shared]
          showSheetAlertWithView:
              self
              type:0
              tittle:@"[알림]"
              content:@"내용입니다"
              okBtb:@"확인"
              noBtn:@"취소"
         ];
        // -----------------------------------------
        */
        
        // [메인 큐에서 비동기 방식 실행 : UI 동작 실시]
        DispatchQueue.main.async {
            print("")
            print("====================================")
            print("[C_Ui_View >> showSheetAlert() :: 팝업창 표시 수행 실시]")
            print("-------------------------------")
            print("type :: ", type)
            print("-------------------------------")
            print("tittle :: ", tittle)
            print("-------------------------------")
            print("content :: ", content)
            print("-------------------------------")
            print("okBtb :: ", okBtb)
            print("-------------------------------")
            print("noBtn :: ", noBtn)
            print("====================================")
            print("")
            
            
            // [UIAlertController 객체 정의 실시]
            let alert = UIAlertController(
                title: tittle + "\n",
                message: content + "\n",
                preferredStyle: UIAlertController.Style.actionSheet
            )
            
            
            // [인풋으로 들어온 확인 버튼이 nil 아닌 경우]
            if(okBtb != "" && okBtb.count>0){
                let okAction = UIAlertAction(title: okBtb, style: .default) { (action) in
                    // -----------------------------------------
                    // [확인 버튼 클릭 이벤트 내용 정의 실시]
                    // -----------------------------------------
                    if type == 0 {
                        // [일반 팝업창 알림]
                    }
                    // -----------------------------------------
                    return
                }
                // [버튼 클릭 이벤트 객체 연결]
                alert.addAction(okAction)
            }
            
            
            // [인풋으로 들어온 취소 버튼이 nil 아닌 경우]
            if(noBtn != "" && noBtn.count>0){
                let noAction = UIAlertAction(title: noBtn, style: .cancel) { (action) in
                    // [취소 버튼 클릭 이벤트 내용 정의 실시]
                    return
                }
                // [버튼 클릭 이벤트 객체 연결]
                alert.addAction(noAction)
            }
            
            
            // [alert 팝업창 활성 실시]
            view.present(alert, animated: false, completion: nil)
        }
    }
    
    
} // [클래스 종료]

 

반응형
Comments