我正在尝试创建一个使用RxSwift的简单tableVIEwController,并且没有任何部分.
我已经广泛地看了https://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/TableView/TableViewController.swift.
我将代码仅限于一个部分并仅使用用户.然而,似乎我仍然坚持使用SectionModel.
//// tableVIEwController.swift// RxExample//// Created by carlos on 26/5/15.// copyright (c) 2015 Krunoslav Zaher. All rights reserved.//// modifIEd by Mike Finney for a StackOverflow questionimport UIKit#if !RX_NO_MODulEimport RxSwiftimport RxCocoa#endifclass tableVIEwController: VIEwController,UItableVIEwDelegate { @IBOutlet weak var tableVIEw: UItableVIEw! var disposeBag = disposeBag() let users = Variable([User]()) let dataSource = RxtableVIEwSectionedReloadDataSource<SectionModel<String,User>>() typealias Section = SectionModel<String,User> overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.navigationItem.rightbarbuttonItem = self.editbuttonItem() users .map { [ SectionModel(model: "ok",items: ) ] } .bindTo(tableVIEw.rx_itemsWithDataSource(dataSource)) .adddisposableto(disposeBag) dataSource.cellFactory = { (tv,ip,user: User) in let cell = tv.dequeueReusableCellWithIDentifIEr("Cell")! cell.textLabel?.text = user.firstname + " " + user.lastname return cell } // customization using delegate // RxtableVIEwDelegateBrIDge will forward correct messages tableVIEw.rx_setDelegate(self) .adddisposableto(disposeBag) tableVIEw.rx_itemSelected .subscribeNext { [uNowned self] indexPath in self.showDetailsForUserAtIndexPath(indexPath) } .adddisposableto(disposeBag) tableVIEw.rx_itemDeleted .subscribeNext { [uNowned self] indexPath in self.removeUser(indexPath) } .adddisposableto(disposeBag) RandomUserAPI.sharedAPI.getExampleUserResultSet() .subscribeNext { [uNowned self] array in self.users.value = array } .adddisposableto(disposeBag) } overrIDe func setEditing(editing: Bool,animated: Bool) { super.setEditing(editing,animated: animated) tableVIEw.editing = editing } // MARK: table vIEw delegate ;) func tableVIEw(tableVIEw: UItableVIEw,heightForheaderInSection section: Int) -> CGfloat { return 0 } // MARK: Navigation private func showDetailsForUserAtIndexPath(indexPath: NSIndexPath) { let sb = UIStoryboard(name: "Main",bundle: NSBundle(IDentifIEr: "RxExample-iOS")) let vc = sb.instantiateVIEwControllerWithIDentifIEr("DetailVIEwController") as! DetailVIEwController vc.user = getUser(indexPath) self.navigationController?.pushVIEwController(vc,animated: true) } // MARK: Work over Variable func getUser(indexPath: NSIndexPath) -> User { var array: [User] switch indexPath.section { case 0: array = users.value default: fatalError("Section out of range") } return array[indexPath.row] } func moveUserFrom(from: NSIndexPath,to: NSIndexPath) { var user: User var fromArray: [User] var toArray: [User] fromArray = users.value user = fromArray.removeAtIndex(from.row) users.value = fromArray toArray = users.value toArray.insert(user,atIndex: to.row) users.value = toArray } func addUser(user: User) { var array = users.value array.append(user) users.value = array } func removeUser(indexPath: NSIndexPath) { var array: [User] switch indexPath.section { case 0: array = users.value array.removeAtIndex(indexPath.row) users.value = array default: fatalError("Section out of range") } }}
如果我能帮助它,我甚至不想使用SectionModel.
所以也许另一种问题是“RxtableVIEwSectionedReloadDataSource的非节版本是什么?”
解决方法 2015年12月6日左右,RxSwift / RxExample增加了一个新示例.要查看的VIEw Controller在 RxSwift代码中是 SimpleTableViewExampleViewController.swift.如果运行示例,请选择标题为“最简单的表视图示例”的示例
以上是内存溢出为你收集整理的RxSwift和如何使简单的TableViewController?全部内容,希望文章能够帮你解决RxSwift和如何使简单的TableViewController?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)