showAlert ๋ฉ์๋๋ ๋น๋๊ธฐ ์ฝ๋์ ๋๋ค. ์ ํํ ๋งํ๋ฉด, UIAlertController๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฆผ์ ๋์ฐ๋ ์์ ์ ๋น๋๊ธฐ์ ์ผ๋ก ๋์ํฉ๋๋ค.
๋น๋๊ธฐ ๋์์ ๊ฐ๋
UI ๊ด๋ จ ์์ ์ ๋น๋๊ธฐ์ฑ:
UIAlertController๋ฅผ ํ๋ฉด์ ํ์ํ๋ ์์ ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ present(_:animated:completion:) ๋ฉ์๋๊ฐ ํธ์ถ๋ ํ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๊ฐ ์ ๋ฐ์ดํธ๋๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฆ, present(_:animated:completion:) ํธ์ถ ํ UI๊ฐ ์ ๋ฐ์ดํธ๋ ๋๊น์ง ์ฝ๋ ์คํ์ด ์ผ์ ์ค๋จ๋์ง ์๊ณ ๊ณ์ ์งํ๋ ์ ์์ต๋๋ค.
๋น๋๊ธฐ ๋ฉ์๋์ Completion Handler:
UIAlertController์ present(_:animated:completion:) ๋ฉ์๋๋ ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฆผ์ ํ๋ฉด์ ํ์ํ๊ณ , ํ์๊ฐ ์๋ฃ๋ ํ์๋ completion ํด๋ก์ ๊ฐ ํธ์ถ๋ ์ ์์ต๋๋ค. completion ํด๋ก์ ๋ ์ ํ์ ์ผ๋ก ์ง์ ํ ์ ์์ผ๋ฉฐ, ์๋ฆผ์ด ํ๋ฉด์ ๋ํ๋๊ฑฐ๋ ์ฌ๋ผ์ง ๋ ์ถ๊ฐ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋๊ธฐ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ
1. ์ฌ์ฉ์ ํ์ธ์ด ํ์ํ ์ค์ํ ์์
์ด๋ค ์์ ์ ์ํํ๊ธฐ ์ ์ ์ฌ์ฉ์์ ๋ช ์์ ์ธ ํ์ธ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ ์ญ์ , ๋ก๊ทธ์์, ํ์ ํํด ๋ฑ ๋๋๋ฆด ์ ์๋ ์์ ์ ์ํํ ๋ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ์น์ธํด์ผ๋ง ๋ค์ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค.
showSnycAlert(message: "Are you sure you want to delete this item?",
buttonTitle: "Delete",
buttonClickTitle: "Confirm",
method: {
// ์ฌ์ฉ์๊ฐ Confirm์ ํด๋ฆญํ์ ๋ ์คํ๋ ์ฝ๋
deleteItem()
})
์์ ์์์์ deleteItem()์ ์ฌ์ฉ์๊ฐ "Confirm" ๋ฒํผ์ ๋๋ ์ ๋๋ง ์คํ๋ฉ๋๋ค. ์ฆ, ์ฌ์ฉ์์ ํ์ธ์ด ์์ ๋๋ง ์ด ๋ฉ์๋ ์์ ์ ์๋ ์ฝ๋๊ฐ ์คํ๋๋ ๊ฒ์ ๋๋ค.
2. ์์ ํ ํ์ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ
์ฌ์ฉ์๊ฐ Alert ์ฐฝ์์ ๋ฒํผ์ ํด๋ฆญํ ํ์ ํน์ ํ์ ์์ ์ ์ฆ์ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋ฒ์ ํต์ ํ์ฌ ๋ก๊ทธ์์ ์ฒ๋ฆฌ๋ฅผ ํ ๋ค, ์ฑ๊ณต์ ์ผ๋ก ๋ก๊ทธ์์๋์์์ ์๋ฆฌ๋ Alert์ ๋์ธ ์ ์์ต๋๋ค.
showSnycAlert(message: "Do you want to logout?",
buttonTitle: "Logout",
buttonClickTitle: "Yes",
method: {
// ์ฌ์ฉ์๊ฐ Yes๋ฅผ ํด๋ฆญํ์ ๋ ์คํ๋ ์ฝ๋
performLogout()
})
3. ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์กํ๊ธฐ ์ ์ ํ์ธ์ด ํ์ํ ๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์กํ๊ธฐ ์ ์ ์ฌ์ฉ์์ ์ต์ข ํ์ธ์ ๋ฐ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฒฐ์ ๋ฒํผ์ ๋๋ฅด๊ธฐ ์ ์ ๊ฒฐ์ ๋ด์ฉ์ ๋ค์ ํ๋ฒ ํ์ธ์ํค๊ณ , ์ฌ์ฉ์๊ฐ ํ์ธ์ ๋๋ฅด๋ฉด ๊ทธ๋์์ผ ๊ฒฐ์ ๋ฅผ ์งํํ๋ ์ํฉ์ ๋๋ค.
showSnycAlert(message: "Do you want to proceed with the payment?",
buttonTitle: "Payment",
buttonClickTitle: "Proceed",
method: {
// ์ฌ์ฉ์๊ฐ Proceed๋ฅผ ํด๋ฆญํ์ ๋ ์คํ๋ ์ฝ๋
processPayment()
})
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Type Aliases(ํ์ ๋ณ์นญ) (0) | 2024.11.25 |
---|---|
[ Swift ] Error Handling (1) | 2024.11.05 |
UITextField์ ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด (0) | 2024.08.28 |
[ Swift ] ํ๋กํ ์ฝ(protocol) (0) | 2024.08.25 |
[ Swift ] ํ๋กํผํฐ(Property) / NetworkManager์ shared (0) | 2024.08.24 |