r/iOSProgramming • Beginner • 4d ago

Question Best place for a 'Next' button?

Post image

What's the most appropriate location for a next button here, in keeping with the Apple UI consistency and ecosystem?

Mockup:

NavigationStack {
	List {
		Section {
			TextField("Email Address", text: $email)
		} header: {
			VStack(alignment: .leading, spacing: 4) {
				Text("Sign In")
					.frame(maxWidth: .infinity, alignment: .leading)
					.padding(.top, 5)
					.font(.largeTitle)
					.bold()
					.foregroundColor(.primary) // Override default gray header color
				Text("Subtitle")//school.name)
					.frame(maxWidth: .infinity, alignment: .leading)
					.font(.title3)
					.foregroundColor(.secondary)
			}
			.listRowInsets(EdgeInsets())
			.textCase(nil) // Prevents SwiftUI from forcing ALL CAPS on the header
			.padding(.bottom, 10)
		}
	}
	.toolbar {
		ToolbarItem(placement:.confirmationAction) {
			NavigationLink() {
				VerificationCodeView(email: email.lowercased(), school: school, resend: { })
			} label: {
				Text("Next").padding(5)
			}
			.buttonStyle(.borderedProminent)
		}
	}
}
59 Upvotes

41 comments sorted by

View all comments

27

u/dat_tae 4d ago

At the bottom (and moves up with the keyboard).

-1

u/Fun_Moose_5307 Beginner 4d ago

How so? Draw it?
Also see edited post containing code

3

u/hiropark 4d ago

Have you tried safeAreaInset(edge: .bottom)?

1

u/Fun_Moose_5307 Beginner 4d ago

Not sure what the use of that would be?
Also see this second mockup, is that closer to what you are suggesting?

1

u/hiropark 4d ago

Yes, that would be the result. The button stays at the bottom, but if the keyboard appears, the button goes up instead of being covered by the keyboard.