Xcode - Swiftで簡単なおみくじアプリを作成しました
以下、一部ソースを掲載します
SecondView.swift
import SwiftUI
struct SecondView: View {
// おみくじ結果を保存する変数
@State private var result: String = "おみくじを引いてね!"
// おみくじの結果の候補
let omikujiResults = ["大吉","中吉","小吉","末吉","凶"]
var body: some View {
VStack(spacing: 20) {
Text("これは2ページ目です!")
.font(.largeTitle)
.padding()
Text(result) // 結果を表示するテキスト
.font(.largeTitle)
.padding()
Button(action: {
// ボタンが押された時の動作
result = omikujiResults.randomElement() ?? "エラー"
}) {
Text("おみくじを引く") // ボタンの表示テキスト
.font(.title)
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
}
// リセットボタン
Button(action: {
// 結果を初期値にリセット
result = "おみくじを引いてね!"
}) {
Text("リセット")
.font(.title)
.padding()
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(10)
}
}
.padding()
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView()
}
}
まだiPhoneアプリを作成し始めたばかりなので
わからない点も多いですが
今回いくつか学びがありました
今回の学び①
SwiftUIで画面遷移を実現するには、親ビューをNavigationViewでラップする必要がある。
今回の学び②
@State変数とは何か?
@StateはSwiftUIで使われる「データの状態管理」に関する仕組みである。
ビューがユーザーの操作やアプリの動作で変化する場合、
@Stateを使ってその変化を追跡し、ビューを自動的に更新する。
以上です。