Notice
Recent Posts
Recent Comments
Link
투케이2K
23. (TWOK/UTIL) [Ios/Swift] C_Ui_View - 팝업창 표시 , UI 뷰 관련 표시 수행 본문
[설 명]
프로그램 : Ios / Swift
설 명 : 팝업창 표시 , UI 뷰 관련 표시 수행
[소스 코드]
import Foundation
import UIKit
import SafariServices
// MARK: [extension 정의 실시 : 뷰 컨트롤러]
extension UIViewController {
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. Ui 화면 표시 관련 뷰 정의 클래스
// -----------------------------------------
*/
// MARK: - [alert 팝업창 표시 수행]
func showAlert(type:Int, tittle:String, content:String, okBtb:String, noBtn:String) {
/*
// -----------------------------------------
[showAlert 메소드 설명]
// -----------------------------------------
1. 일반 팝업창 수행 메소드
// -----------------------------------------
2. type 속성 값 정리 :
- type == 0 : 일반 알림 표시
- type == 1 : 애플리케이션 권한 설정창 이동
// -----------------------------------------
3. 호출 방법 :
// [팝업창 표시 수행 실시]
self.showAlert(
type: 0,
tittle: S_FinalData.AL_TITLE,
content: "내용 입니다",
okBtb: S_FinalData.AL_OK,
noBtn: S_FinalData.AL_NO
)
// -----------------------------------------
*/
// [메인 큐에서 비동기 방식 실행 : 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 {
// [일반 팝업창 알림]
}
if type == 1 {
// [애플리케이션 설정창 이동]
self.goAppSetting()
}
return
}
// [버튼 클릭 이벤트 객체 연결]
alert.addAction(okAction)
}
// [인풋으로 들어온 취소 버튼이 nil 아닌 경우]
if(noBtn != "" && noBtn.count>0){
let noAction = UIAlertAction(title: noBtn, style: .default) { (action) in
// [취소 버튼 클릭 이벤트 내용 정의 실시]
return
}
// [버튼 클릭 이벤트 객체 연결]
alert.addAction(noAction)
}
// [alert 팝업창 활성 실시]
self.present(alert, animated: false, completion: nil)
}
}
// MARK: [클립보드 복사 팝업창 호출 처리 메소드]
func showAlertCopy(tittle:String, content:String, okBtb:String, noBtn:String) {
/*
// -----------------------------------------
[showAlertCopy 메소드 설명]
// -----------------------------------------
1. 클립보드 복사 팝업창 수행 메소드
// -----------------------------------------
2. 호출 방법 :
// [팝업창 표시 수행 실시]
self.showAlertCopy(
tittle: S_FinalData.AL_TITLE,
content: "내용 입니다",
okBtb: S_FinalData.AL_OK,
noBtn: S_FinalData.AL_NO
)
// -----------------------------------------
*/
// [메인 큐에서 비동기 방식 실행 : 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 팝업창 활성 실시]
self.present(alert, animated: false, completion: nil)
}
}
// MARK: - [alert sheet 팝업창 표시 수행]
func showSheetAlert(type:Int, tittle:String, content:String, okBtb:String, noBtn:String) {
/*
// -----------------------------------------
[showSheetAlert 메소드 설명]
// -----------------------------------------
1. Alert Sheet 표시 팝업창 수행 메소드
// -----------------------------------------
2. type 속성 값 정리 :
- type == 0 : 일반 알림 표시
// -----------------------------------------
3. 호출 방법 :
// [팝업창 표시 수행 실시]
self.showSheetAlert(
type: 0,
tittle: S_FinalData.AL_TITLE,
content: "내용 입니다",
okBtb: S_FinalData.AL_OK,
noBtn: S_FinalData.AL_NO
)
// -----------------------------------------
*/
// [메인 큐에서 비동기 방식 실행 : 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 팝업창 활성 실시]
self.present(alert, animated: false, completion: nil)
}
}
} // [extension 종료]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments