AddItemView.swift
iOS_App/To-Do-List-Demo/To-Do-List-Demo/AddItemView.swift
//
// AddItemView.swift
// To-Do-List-Demo
//
// Created by Nelson Lai on 2026/6/25.
//
import SwiftUI
struct AddItemView: View {
@Environment(\.dismiss) private var dismiss
@State private var subject = ""
@State private var itemDescription = ""
let onSave: (String, String) -> Void
var body: some View {
NavigationStack {
Form {
Section("Subject") {
TextField("Enter subject", text: $subject)
}
Section("Description") {
TextField("Enter description", text: $itemDescription, axis: .vertical)
.lineLimit(3...6)
}
}
.navigationTitle("New To-Do")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Cancel") {
dismiss()
}
}
ToolbarItem(placement: .confirmationAction) {
Button("Save") {
onSave(subject.trimmingCharacters(in: .whitespacesAndNewlines),
itemDescription.trimmingCharacters(in: .whitespacesAndNewlines))
dismiss()
}
.disabled(subject.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)
}
}
}
}
}
#Preview {
AddItemView { _, _ in }
}
相關文章
ContentView.swift
ContentView.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-Demo/ContentView.swift).
閱讀文章 →Item.swift
Item.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-Demo/Item.swift).
閱讀文章 →ItemDetailView.swift
ItemDetailView.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-Demo/ItemDetailView.swift).
閱讀文章 →To_Do_List_DemoApp.swift
To_Do_List_DemoApp.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-Demo/To_Do_List_DemoApp.swift).
閱讀文章 →To_Do_List_DemoTests.swift
To_Do_List_DemoTests.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-DemoTests/To_Do_List_DemoTests.swift).
閱讀文章 →To_Do_List_DemoUITests.swift
To_Do_List_DemoUITests.swift — swift source code from the iOS App learning materials (iOS_App/To-Do-List-Demo/To-Do-List-DemoUITests/To_Do_List_DemoUITests.swift).
閱讀文章 →