【发布时间】:2016-10-14 11:38:01
【问题描述】:
我正在尝试逐渐将我的应用程序转换为 RxSwift / MVVM。但我认为我做错了一些事情。
在此示例中,我有一个包含此特定信息的静态表。
let itens = Observable.just([
MenuItem(name: GlobalStrings.menuItemHome, nameClass: "GPMainVC"),
MenuItem(name: GlobalStrings.menuItemProfile, nameClass: "GPMainVC"),
MenuItem(name: GlobalStrings.menuItemLevels, nameClass: "GPLevelsVC"),
])
当用户选择一个单元格时,我需要知道模型(MenuItem)和索引,但我无法做到这一点
tableView.rx
.itemSelected
.map { [weak self] indexPath in
return (indexPath, self?.modelView.itens.elementAt(indexPath.row))
}
.subscribe(onNext: { [weak self] indexPath, model in
self?.tableView.reloadData()
//can´t get MenuItem because model its a observable
//self?.didSelect((indexPath as NSIndexPath).row, name.nameClass)
})
.addDisposableTo(disposeBag)
提前致谢
【问题讨论】:
-
你的
itens真的是一个序列吗(因为这才是真正的可观察对象,即你可以“观察”的事件序列)?它看起来的样子,itens只是某种字典,你想用它来查找MenuItem。如果是这种情况,那么您不应该从中观察到。 -
感谢您的回答@Anton Bronnikov。但是你建议改用什么?