- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 View 模型,它有一个在调用 API 后返回可观察数组的元素。
然后我找到那个结果到一个 TableView 来显示它。我遇到的问题是如何在单击的特定单元格上调用详细 View Controller 。我将结果绑定(bind)为:
let queryResults = eventsViewModel.mainTableItems
queryResults
.bind(to: collectionView.rx.items) { collectionView, row, item in
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: IndexPath(row: row, section: 0)) as! EventCell
cell.heroID = "heroCellID"
cell.restaurantNameLabel.text = item.name
cell.restaurantDetailLabel.text = item.location
cell.timeLabel.text = item.date
cell.restaurantImageView.kf.setImage(with: URL(string: item.image))
return cell
}
.addDisposableTo(disposeBag)
我无法访问这个被点击的可观察数组中的特定元素。它说 Observable 数组不能有下标。
这段代码是这样说的:
vc.festival = queryResults.value[indexPath.row]
我对 RxSwift 还是个新手,我很难理解这一点。
最佳答案
这确实是一个百万美元的问题,即使不使用 RxSwift,也有很多不同的答案,但没有一个是真正简单的。简短的回答是,这取决于您的应用程序的架构方式。
首先,如果您还没有意识到,您会发现使用 tableView.rx.itemSelected
选择了哪个项目。
恕我直言, View Controller 应该彼此独立,所以您不想做的一件事就是从这个 View Controller 创建或继续到详细 View Controller 。应该有某种协调器对象订阅 itemSelected
并负责决定从那里去哪里。
这里有一些好文章可以帮助您走上正轨:
http://rasic.info/a-different-take-on-mvvm-with-swift/
在这篇文章中,Rasic 先生谈到了一个他称之为 Scene
的类,该类负责创建 View Controller 及其 View 模式,附加它们,然后决定从那里去哪里.
http://khanlou.com/2015/01/the-coordinator/
在这篇文章中,Khanlou 先生谈到了一个他称之为Coordinator
的类。他不使用 Rx,而是使用委托(delegate),但很容易看出它们之间的关系。
https://talk.objc.io/episodes/S01E05-connecting-view-controllers
在这段视频中,objc.io 团队创建了一个 App
类来处理 View Controller 导航。他们在这里使用闭包而不是 Rx,但是对应关系应该是显而易见的。
关于swift - MVVM RxSwift 将数据从主视图发送到详细 View Controller 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348206/
我有一个基于 REST 的经典 springboot 应用程序。我想开始使用 Vaadin,以便直接从 java 代码创建 ui 组件。 我在他们的教程中发现,您必须使用 @Route('') 创建一
为了设计,我使用 Storyboard。主页 View Controller 包含单独 View 中的侧面菜单,我设计了带有 Collection View 的主页。对于侧面菜单,我使用包含 MyNa
我正在寻找如何为 UWP Win 10 应用程序构建主/详细 View 的好示例,如本页所示:https://msdn.microsoft.com/en-us/library/windows/apps
我遇到这个问题,在 iPhone 7 Plus 的横向模式下,当单击设备左侧表格 View 中的单元格时,内容会显示在表格 View 的顶部,或者替换表格 View .在这种情况下, Split Vi
我想改变我的主视图(不是按钮或 TextView )的背景颜色,只是通常是黑色的真实背景......我得到了这个代码: view.setBackgroundColor(0xfff00000); 这在
我正在尝试在 Android 应用程序中使用 Wikitude API,但相关文档很少。 那么,有什么办法可以在wikitude View 中添加一个action bar吗?还有一些按钮?因为我只看到
我正在尝试隐藏 navigationViewControleler 层次结构的桅杆 View Controller 中的工具栏。 我创建一个新的 ViewController 作为 RootViewC
已关闭。此问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我正在寻找实现可编辑详细 View 的可能性。我的应用程序有一个经典的主 -> 详细 View 设置。苹果文档(http://developer.apple.com/library/ios/#feat
我正在使用一个框架,该框架使用其特定控件创建 UIViewControllers。我无法访问其 Storyboard来手动修改它。有没有办法向其 View 添加标签之类的内容并正确定位它,即使 Vie
我有带 subview 和应用约束的 View Controller 。 问题:我想做的是以编程方式添加 ScrollView 只有 iPhone 4s 设备在 ScrollView 中具有 self
我有基本的主视图/详细 View 与默认的 ASP.NET MVC 路由配合得很好;但是我想构建一些这样的 URL: /Class/Details/5 -- General Detail view [
我需要在 Split View Controller 中更改 View Controllers 的宽度大小。我的意思是第一个 View Controller 的默认值是 320。第二个是 703。我需
我是一名优秀的程序员,十分优秀!