- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 VIPER 新手,我已经在该架构中构建了最简单的演示,但是我遇到了麻烦,因为 View / View Controller 中的 UILabel 没有更新。这是相关代码:查看:
override func viewDidLoad() {
super.viewDidLoad()
presenter?.updateView()
}
演讲者:
func updateView() {
interactor?.getText()
}
交互者:
func getText() {
presenter?.gotText(text: "Hello Viper")
}
演讲者:
func gotText(text: String) {
view?.updateLabel(text: text)
}
查看:
func updateLabel (text: String) {
print(text)
helloLabel.text = text
}
print(text) 返回值,但 View 本身并未更新。
我尝试在主线程上进行更新,但没有成功。我见过一些具有类似模式的项目(更新 ViewController/label/backgroundColor 等中的 View ),但我无法弄清楚我的代码出了什么问题。
该示例可从 GitHub https://github.com/veliborsantic/VIPER-simple-example 获取。类似的项目可以在 https://github.com/smalam119/live-news-viper 找到。 ,它按预期运行。
编辑1:我意识到 viewDidLoad 函数被调用了两次。我在 viewDidLoad() 和 updateLabel (text: String) 中设置打印消息,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad: ", helloLabel.text!)
presenter?.updateView()
}
func updateLabel (text: String) {
helloLabel.text = text
print("updateLabel: ", helloLabel.text!)
}
Outputs:
viewDidLoad:
updateLabel: Hello Viper
viewDidLoad:
如果我删除AppDelegate中initialViewController的配置,viewDidLoad会被调用一次,但模块不会加载。
编辑 2/已解决经过研究,我必须做三件事:告诉我不想通过 Storyboard初始化 Controller ,所以:1.关闭“是初始 View Controller ”2. 部署信息中Deattach Main和3. AppDelegate 中的所有代码都移动到 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
中的 Scene Delegate最佳答案
设置文本后尝试 view.layoutIfNeeded()
关于swift - 使用 VIPER 架构更新 View 中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59128914/
该应用程序的本质是一个 UITableView,当用户向下滚动 tableView 时,它会在每一行上显示 UIImages。我应该如何在不破坏 VIPER 架构的情况下将图像加载到单元格中? --V
1 介绍 Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。目前Star 26.6k, 它支持以下特性: 设置默认值
VerCors 中的一个错误生成了一些银色,看起来像: field f: Int method test(n: Int, x: Ref) requires n == 100 requires acc(
这是我的config.yaml文件 server: port: 5000 这是我使用毒蛇解码的逻辑 type Configurations struct { Server ServerCo
在iOS VIPER项目中,每个模块都需要调用远程服务(例如刷新 token +检查用户登录)。实现这一需求的最佳实践是什么? 每个模块可以有多个交互器吗? 或者我们应该在每个模块(交互器)中实现相同
我在使用 viper 时遇到问题,我已经通过 viper 方法分配了变量,所以当我尝试在任何函数中获取值时,我得到的是空值。有谁知道为什么会这样?任何其他变量初始化工作正常,但 viper GetSt
我用毒蛇 https://github.com/spf13/viper用于在我的 GO 应用程序中管理项目配置,以及将配置值解码为结构体。 var config c.Configuration //
我正在寻找 go 和 https://github.com/spf13/viper 的配置解析器似乎强烈推荐。 我很惊讶地发现配置文件默认没有经过验证。 Viper 解析文件并从中提取请求的值,但我找
我有一个类似于以下的 yaml 文件: ComplexItemList: - Name: First Complex item Date: Whenever StructItemList:
在VIPER设计模式,Interactor 应该返回可能被多个演示者操作使用的所有信息,还是我应该为每个演示者设置一个单独的结构? 在我的例子中,我有一张显示地点的 map 。要显示这些地点,我需要从
我正在按照 VIPER 设计模式在 Swift 中构建应用程序。 VIPER 包含四个组件: 1) 查看2)线框3) 主持人4) 交互器 我的常量将出现在哪个组件中以及如何出现? 最佳答案 如果你的意
假设我们必须每 10 秒更新一次数据。我们应该在哪里创建/存储计时器,它会在 VIPER 架构中的什么地方触发相关方法?ViewController 应该这样做并通知演示者吗?还是 Presenter
作为初学者,我曾经在 ViewControllers 中执行转场。此外,Apple 鼓励这种方法,因为 UIViewController 有方法 performSegue 和 prepareForSe
我正在将我的项目更改为 VIPER 模式。 我的主要观点有很多观察者。我找不到应该将我的观察员放在 VIPER 中的什么位置。 因为我不想让我的观察者出现在视野中。以前我有单独的观察者类,当有通知时,
考虑到VIPER结构 我有两个模块,A 和 B。第一个模块 A,通过演示者,想要执行一个必须在模块 B 中完成的 Action ,所以告诉它的线框去做。问题是,谁负责实例化整个模块( View 、交互
我正在尝试使用 viper ( see viper docs ) 读取 yaml 配置文件。但是我看不到一种方法来读取问题类型下的 map 值序列。我尝试了各种 Get_ 方法但似乎没有人支持这一点。
我有一个 yaml 配置文件,其中包含我的程序的所有设置。例如: something: enabled: true 我正在使用 https://github.com/spf13/viper获取
我正在尝试从配置中获取一些名称未知的组(稍后会获取更多)。 我是 golang 的新手,有点吃力。我正在使用 Viper,因为它支持 yaml、json 和 toml。 json 配置: {
有没有办法从加载的配置文件中删除键/值对? viper.Set("key", nil) 不工作 最佳答案 尝试 delete(viper.Get("path.to.key").(map[string]
我注意到这可能是 viper 尝试解码为结构时的错误。为了更好地解释它,请考虑以下内容: 我有一个如下所示的 cli 命令 dd-cli submit-bug --name "Bug 1"--tag
我是一名优秀的程序员,十分优秀!