swift - 防止 UIViewControllerRepresentable 更新
问题描述
我正在关注SwiftUI 网站上的 UIKit 接口教程,并且我正在我的PageViewController
应用程序中实现我自己的。目前,它与教程共享相同的代码。
问题是controllers
我在里面传递PageViewController
的一个,有一个Button
改变State
容器的。
这是Container
@State private var counter: Int
@State private var currentPage: Int = 0
var body: some View {
VStack {
PageViewController(
controllers: [UIHostingController(rootView: Page(counter: self.$counter))],
currentPage: self.$currentPage
)
}
}
Page
就像_
struct Page: some View {
@Binding counter: Int
var body: some View {
Button(
action: {
self.counter +=1
}
){
Text("Increase counter")
}
Text("Value: \(self.counter)")
}
}
每当我按下 时Button
,计数器就会增加,State
更新,结构updateUIViewController
内部PageViewController
就会被触发。
更新做到了这一点
func updateUIViewController(_ pageViewController: UIPageViewController, context: Context) {
pageViewController.setViewControllers([sItemsControllers[self.currentPage]], direction: .forward, animated: true)
}
因此,每次updateUIViewController
触发时,PageViewController
都会更新并显示下一页。
关于如何防止它的任何建议?
解决方案
推荐阅读
- c++ - 用外部常量初始化 constexpr
- java - 如何向上旋转这个手臂?
- django - 无法在后台模式下显示 Firebase 推送通知/消息
- angular - 如何在角度应用程序中将窗口屏幕尺寸锁定为 16:9
- python-3.x - 分块数据框
- flutter - Flutter:即使从对话框对状态所做的更改未重定向到它,状态也在更新
- javascript - 如何使用不同的选项(Grapes.js)两次使用相同的插件
- php - 如何在 woocommerce 中更改自定义用户注册文件中的错误显示顺序
- angular - 如何将 MVT 切片链接到矢量图层的源属性?
- docker - rabbitMQ REST API 创建 vHOST 使套接字挂起