问题标签 [rx-cocoa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
107 浏览

swift - ViewModel 中的链可观察对象用于获取但保留为独立属性

我有一个MapViewModel适合我的MapViewController.

我有一个返回一个MapObjectService函数fetchMapObjects(currentLocation: CLLocation)Observable<MapObjects>

在 MapViewModel 我有:

我可以像这样初始化当前位置:

如何有效地初始化这两个属性,以便fetchMapObjects()使用 currentLocation 来设置mapObjects属性?

我的计划是将这些属性绑定到 mapView 中,MapViewController以将地图对象显示为图钉和当前位置。

谢谢!

0 投票
3 回答
2506 浏览

ios - 从 UICollectionView 索引路径获取模型

RxSwift用来将模型数组绑定到集合视图

如何从给定的 indexPath 获取模型对象?

我正在做这样的绑定:

我的问题的核心是,我需要同时获取模型对象和用户选择的单元格。Using collectionView.rx.modelSelected(T.self)only 给了我模型 og type T。打电话collectionView.rx.itemSelected只会给我选择的IndexPath

但这在尝试使用 indexPath 的模型时给了我一个错误:

类型“inout UICollectionView”不符合协议“ReactiveCompatible”

尝试一下:

也给了我一个错误:

对成员 'model(at:)' 的模糊引用

SO...如何同时获取模型对象和用户选择的单元格?

0 投票
1 回答
822 浏览

rx-cocoa - 将函数绑定到切换按钮的语法是什么?

以下是将切换开关绑定到活动指示器的教程代码片段:

绑定到私有 func()的语法是什么?
除了翻转布尔值之外,我还希望能够做几件事。

具体来说,我想:

  1. 切换另一个按钮的标题;
  2. 启用和清除 UITextView;和
  3. 更改 UILabel 文本。

还是在这种情况下,仅使用熟悉的切换按钮@IBAction 范例更好?

0 投票
1 回答
779 浏览

ios - RxCocoa 数据绑定导致集合视图滚动到顶部

我有一个我正在重写以使用的 iOS 应用程序RxSwiftRxCocoa. 它工作得很好,但我在集合视图数据绑定方面遇到了问题。

在我的应用程序中,我viewWillAppear在视图控制器上调用时执行数据绑定,例如:

```

这很好用 - 我的数据正确绑定到我的集合视图。

但是,为了避免对当前不可见的视图控制器进行活动绑定,我会在调用disposeBag时解除分配。viewWillDisappear然后,每当再次显示 vc 时,我都会重新创建处理包并重新绑定数据。

我的问题是,当我将数据重新绑定到集合视图时,内容偏移量被重置。考虑一个场景,当一个项目被点击时,我列出内容并导航到一个新的视图控制器。每当我回到列表时,新的数据绑定将导致滚动视图滚动到顶部。

集合视图的默认行为是保持其偏移量,即使数据源更改并被reloadData调用。我在这里遗漏了什么还是我做错了什么?

0 投票
2 回答
368 浏览

swift3 - 如何使用 RX 索引更改标题

我想用可观察的 int 更改标题。

在视图模型

在视图控制器

当我这样做时,我在盲人(to)中有一个错误:

致命错误:在展开可选值时意外发现 nil

该函数永远不会传入 .map

当我在 RX Swift 中的索引更改时,我如何更改标题?

0 投票
1 回答
231 浏览

swift - 两种查询方式的区别

我遇到了 RxSwift 调度程序的问题:

这两个代码有什么区别:

0 投票
2 回答
2971 浏览

ios - 如何使用 RxSwift disposeBag 防止 UITableViewCell 中重复的 UIButton 点击

首先对令人困惑的标题感到抱歉,但我实际上无法想出更好的东西(如果你这样做,请编辑)。

我有一个使用 Coordinator 模式和 RxSwift 的应用程序,所以总而言之,我想将所有与导航相关的东西传递给 Coordinator,这样它就可以处理导航逻辑。
在一个视图控制器中,我拥有UITableView其中包含单元格的单元格UIButton。对于这种情况,我有一个:

chapterAction是一个PublishSubject<Void>,因为它只反映了一个按钮点击,但我需要将更多信息传递给协调器,所以稍后我将其转换chapterAction为:

而且我认为到目前为止这段代码没有任何问题,所以在 View Controller 中.bind(to: tableView.rx.items...我有:

因为我想将它绑定到视图控制器viewModel,然后subscribe在协调器中。
一切正常,但是对于某些单元格,我会重复点击,为什么?我试过把distinctUntil, shareReply,但似乎没有任何帮助我的问题,它不是一个确定性的问题。我怀疑涉及到一些重用,但我不知道从哪里开始寻找这个问题......

0 投票
1 回答
756 浏览

ios - 合并 UIBarButtonItem tap 和 UIView tapGesture() 的 Observables

对于同一个动作,我有两个来源。a 中的常规 RxCocoa 水龙头UIBarButtonItem

和一个 RxGesture 轻击手势识别器UIView

我以通常的方式订阅它:

这适用于两个可观察对象,现在我想合并它但无法实现它。因为它们是不同事件的两个 observables 是merge行不通的。

类型“inout UIView”不符合协议“ReactiveCompatible”

有可能做到这一点吗?谢谢。

0 投票
1 回答
3330 浏览

rx-swift - 按下按钮时可观察到 RxSwift 触发器

我正在创建一个自定义的 observable,它将呈现一个 UIAlertController,它希望在按下时触发 API 调用。但是,除非我手动订阅它,否则我似乎无法弹出警报。有没有办法从 viewModel 触发这个?

MyController.swift

ViewModel.swift

0 投票
1 回答
447 浏览

ios - 在使用 RxSwift 和 mvvm 发出 moya 请求时添加一个微调器,并在用户收到响应时将其关闭

我有一个应用程序,我正在尝试使用 MVVM 实现 RxSwift。

我有 SignInViewModel ,我在其中进行验证,并且正在使用我正在收听的其余响应布尔值更新可观察的登录。

在控制器类中,只要验证通过,登录按钮就会启用。

以类似的方式,我希望能够在单击按钮时启动微调器,并在用户收到响应时关闭。

当我尝试从控制器类中的视图模型中收听 loginObservable 时。它没有命中绑定块。

我无法弄清楚问题所在。

任何帮助将不胜感激

以下是我的 SignInViewModel

以下是 moyaRequest 类

以下是我的 RestService 课程

}

我正在尝试在控制器类中绑定视图模型。