iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Mobile Development

Flutter Developer Learning SwiftUI系列 第 11

Flutter Developer Learning SwiftUI. @State var lesson11 = "對話框"

  • 分享至 

  • xImage
  •  

Today Preview

Yes

1. 正文

今天介紹Alert(或是更多時候大家會叫他Dialog)
還有一個跟Alert很像的東西
以前在UIKit叫ActionSheet(SwiftUI改叫ConfirmationDialog)
就是從下面彈上來的選單
跟Alert最大的不同就是confirmationDialog是可以點背景取消的
但Alert不行
還有SwiftUI的Alert改成最多只有兩個按鈕
所以如果你有多個選項,就改使用ConfirmationDialog(數量沒有上限)

要顯示Alert或ConfirmationDialog都是使用Modifier,配合綁定Bool變數
我們只需要決定什麼時候為true就好
SwiftUI會自己幫我們改回false

iOS的Button的role概念,Flutter沒有在分這個的⚠️⚠️⚠️
.cancel代表同時只能出現一個,為粗體
.destructive代表不可逆的操作(如刪除),為紅字

而Alert的init方式有兩種
要嘛只有一個dismissButton(Button沒有要求必須是.cancel)
要嘛剛好有兩個Button(primaryButton(左)跟secondaryButton(右))
不過要注意!!不能兩個Button同時為.cancel,會閃退(同時為.destructive沒關係)
PS: 寫稿的時候才發現Alert這個View已經被棄用了,但新的.alert() modifier我覺得太難用了,我不會用,所以先不介紹

最後補充一下
有時我們會透過Alert來做輸入的動作(加上TextField)
但SwiftUI又在iOS16支援了...


2. 對照表

Android iOS Flutter SwiftUI
Dialog UIAlertController AlertDialog Alert

Tomorrow Preview

Yes


跨界學習系列文章

Android版:iOS Developer Learning Android. Lesson 11 - Button + Dialog (感受一下使用原生鏈式編程彈出Alert吧)
Flutter版:iOS Developer Learning Flutter. Lesson7 按鈕與對話方塊


https://github.com/mark33699/FDLS


上一篇
Flutter Developer Learning SwiftUI. @State var lesson10 = "日期挑選"
下一篇
Flutter Developer Learning SwiftUI. @State var lesson12 = "其他控件"
系列文
Flutter Developer Learning SwiftUI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言