Я пытаюсь создать приложение для управления виртуальным центром обработки данных (серверы, политики брандмауэра, балансировщики нагрузки ...). У меня есть два раздела (с помощью вкладки). Один показывает список всех элементов, которые вы создали в своем центре обработки данных. Другой раздел - создание новых элементов. Если мы запустим приложение, мы начнем с раздела списка. Затем я пытаюсь создать новый сервер. Для этого я перехожу в раздел «Создать», нажимаю «Сервер» и выбираю «Размер», здесь первые две проблемы, которые я не смог решить:
- Почему параметры выбора делают маленькимпрыгнуть в верхнюю часть экрана? Как я могу удалить это?
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1009*. Как можно это убрать?
И последняя проблема, с которой я столкнулся, заключается в том, что после создания сервера я возвращаюсь в раздел «Создание» и хочу перейти непосредственно к разделу «Список» . Как я могу это сделать?
Вот основной код, чтобы увидеть вопросы / проблемы, которые у меня есть. Заранее спасибо за любую помощь!
import SwiftUI
struct ContentView: View {
@State private var selectedTab = 1
var body: some View {
TabView(selection: $selectedTab){
CreateView()
.tabItem {
Image(systemName: "plus")
Text("Create")
}.tag(0)
ListView()
.tabItem {
Image(systemName: "cloud")
Text("List")
}.tag(1)
}
}
}
struct CreateView: View {
var body: some View {
VStack{
NavigationView{
List{
NavigationLink(destination: CreateServerView()){
Text("Server")
}
Text("Firewall Policy")
Text("Load Balancer")
}
.navigationBarTitle("Select the element you want to create", displayMode: .inline)
}
}
}
}
struct ListView: View {
var body: some View {
NavigationView{
List{
Section(header: Text("Servers")){
Text("Server 1")
Text("Server 2")
}
Section(header: Text("Firewall policies")){
Text("Firewall 1")
Text("Firewall 2")
}
}
.navigationBarTitle("My virtual datacenter", displayMode: .large)
}
}
}
struct CreateServerView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
@State private var name: String = ""
@State private var selectedFixServer = 0
@State private var serverType = ["S", "M", "L", "XL"]
var body: some View {
NavigationView {
Form {
Section(header: Text("Name of the server")){
TextField("Name", text: $name)
}
Picker(selection: $selectedFixServer, label: Text("Size")) {
ForEach(0 ..< serverType.count) {
Text(self.serverType[$0])
}
}
}
.navigationBarTitle("")
.navigationBarHidden(true)
}
.navigationBarTitle("Create Server")
.navigationBarBackButtonHidden(true)
.navigationBarItems(
leading:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Cancel")
},
trailing:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Create")
}
)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}