-
Notifications
You must be signed in to change notification settings - Fork 2
SwiftUI
Изучение SwiftUI:
Animation TabBar: https://www.youtube.com/watch?v=SythDf1r4oE
Код:
var body: some View {
NavigationView {
NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
LandmarkRow(landmark: landmark)
}
}
Для того, чтобы при нажатии на button можно было переключиться на новую MVC, мы создаем NavigationLink
в сам код передаем нажимаемую кнопку:
в destination передаем то, куда мы хотим переключиться при нажатии:
@State - это чтобы при нажатии сохранялись сами данные.Cледует использовать с простыми типами структур, которые включают String и Int. атрибут, который является эквивалентом типа класса. The first one is straightforward: @State should be used when you have a value-type property that is owned by the current view. So, integers, strings, arrays of stuff, and more are all great candidates for @State.
@StateObject because the “state” part means “this is owned by the current view.”
Важно помнить, что @State и @StateObjectозначает «это представление владеет данными», в то время как другие оболочки свойств, такие как @ObservedObject и @EnvironmentObjectнет.
@ObservedObject - ваше представление не владеет объектом (он может быть уничтожен в любое время). Кто-то другой должен создать и передать его вам, и они сохранят его живым для вас. Хитроумно, что это будет терпеть неудачу только иногда , поэтому вы можете подумать, что ваш код в порядке, только для того, чтобы позже он отказал в какой-то случайный момент.
- Which protocol do you use to bridge UIKit view controllers into SwiftUI?
Create a structure that conforms to UIViewControllerRepresentable and implement the protocol requirements to include a UIViewController in your SwiftUI view hierarchy.
- In which method do you create a delegate or data source for a UIViewControllerRepresentable type?
Return an instance of the coordinator type from makeCoordinator(). SwiftUI manages its life cycle and provides it as part of the context parameter in other required methods.
SwiftUI - отличный фреймворк, но иногда нам нужно повторно использовать классы UIKit, которые мы годами использовали в iOS SDK . К счастью, это очень просто сделать с помощью протокола UIViewRepresentable