大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

SwiftUI沼でゆっくり浸る 都道府県名セクション付きList用源泉Arry

著者:川上洋
公開日:2022/08/13
最終更新日:2022/08/13
カテゴリー:技術情報 雑記
タグ:

こんにちは、川上です。

アプリのMasterのViewの作成です。

デフォルト形式の長いList行から、Detaile(郵便番号ListView)へ繋げるのは、ちと、イマイチだったので、47都道府県名を表示を検索窓付きエリア区別セクションTypeのListにしました。

47都道府県名のList表示用の源泉データArryをVMのinit()で、const風に頑張って作成したのでした。

import SwiftUI

// == MARK: Master View用 地域+都道府県名
typealias tplAreaPostStr = (area: String,postss:[String])
// == MARK: Detail View用 地域+(都道府県名、zipURL)
typealias tplAreaPost_Datas = (area: String,postss:[stTifuken])

// MARK: == 都道府県名とDL用URL型
struct stTifuken:Identifiable,Hashable {
    let id:String = UUID().uuidString
    let name:String
    let dl_url:String
}
class PostNumberViewModel:ObservableObject {
    ...
    // == MARK: Master View用 地域+都道府県名
    @Published var tofukenAreaArry_Str:[tplAreaPostStr]  = []
    // == MARK: Detail View用 地域+(都道府県名、zipURL)
    @Published var tofukenAreaArry_Datas:[tplAreaPost_Datas]  = []

    init() {
        // MARK: == tofukenArryのセクション付きList Data作成
        getTofukenSectionArry()
    }
      ....

// MARK: == tofukenArryのセクション付きList Data作成
    func getTofukenSectionArry() {
        self.tofukenAreaArry_Str.append (contentsOf: [
            (area:"北海道",postss:["北海道"])
            ,(area:"東北",postss:["青森県","岩手県","宮城県","秋田県","山形県","福島県"])
            ,(area:"関東",postss:["茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県"])
           ....
        ])

        self.tofukenAreaArry_Datas.append (contentsOf: [
            (area:"北海道"
             ,postss:[stTifuken(name:"北海道"
                        ,dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/01hokkai.zip")])
            ,(area:"東北"
              ,postss:[stTifuken(name:"青森県"
                               ,dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/02aomori.zip")
                   ,stTifuken(name:"岩手県"
                              ,dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/03iwate.zip")
            .....
         }
}

で、このArryから、Master-Viewの表示作りへと続くのでした。

ではでは。

    上に戻る