From f7c80a3dd1ea3335bbcde2089dd44173bad70df8 Mon Sep 17 00:00:00 2001 From: Max Sokolov Date: Thu, 3 Dec 2015 01:16:23 +0300 Subject: [PATCH] fixed issue with userinfo in action --- Tablet/TableDirector.swift | 8 ++++---- Tablet/TableRowBuilder.swift | 4 ++-- Tablet/TableSectionBuilder.swift | 7 ++++++- Tablet/Tablet.swift | 2 +- .../UserInterfaceState.xcuserstate | Bin 26666 -> 26803 bytes .../TabletDemo/Base.lproj/Main.storyboard | 14 +++++++------- TabletDemo/TabletDemo/ViewController.swift | 4 +++- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/Tablet/TableDirector.swift b/Tablet/TableDirector.swift index 28379b1..9856c1c 100644 --- a/Tablet/TableDirector.swift +++ b/Tablet/TableDirector.swift @@ -62,7 +62,7 @@ public class TableDirector: NSObject, UITableViewDataSource, UITableViewDelegate public func invokeAction(action: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath) -> AnyObject? { let builder = builderAtIndexPath(indexPath) - return builder.0.invokeAction(action, cell: cell, indexPath: indexPath, itemIndex: builder.1) + return builder.0.invokeAction(action, cell: cell, indexPath: indexPath, itemIndex: builder.1, userInfo: nil) } internal func didReceiveAction(notification: NSNotification) { @@ -70,7 +70,7 @@ public class TableDirector: NSObject, UITableViewDataSource, UITableViewDelegate if let action = notification.object as? Action, indexPath = tableView.indexPathForCell(action.cell) { let builder = builderAtIndexPath(indexPath) - builder.0.invokeAction(.custom(action.key), cell: action.cell, indexPath: indexPath, itemIndex: builder.1) + builder.0.invokeAction(.custom(action.key), cell: action.cell, indexPath: indexPath, itemIndex: builder.1, userInfo: action.userInfo) } } @@ -80,7 +80,7 @@ public class TableDirector: NSObject, UITableViewDataSource, UITableViewDelegate if let _ = bundle.pathForResource("cell name", ofType: "nib") { // existing cell - tableView.registerNib(UINib(nibName: "", bundle: bundle), forCellReuseIdentifier: "") + tableView.registerNib(UINib(nibName: "cell", bundle: bundle), forCellReuseIdentifier: "cell id") } else { @@ -122,7 +122,7 @@ public extension TableDirector { let cell = tableView.dequeueReusableCellWithIdentifier(builder.0.reusableIdentifier, forIndexPath: indexPath) - builder.0.invokeAction(.configure, cell: cell, indexPath: indexPath, itemIndex: builder.1) + builder.0.invokeAction(.configure, cell: cell, indexPath: indexPath, itemIndex: builder.1, userInfo: nil) return cell } diff --git a/Tablet/TableRowBuilder.swift b/Tablet/TableRowBuilder.swift index 9d1b418..d980ac1 100644 --- a/Tablet/TableRowBuilder.swift +++ b/Tablet/TableRowBuilder.swift @@ -95,7 +95,7 @@ public class TableRowBuilder : RowBuilder { // MARK: Triggers - public func invokeAction(actionType: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath, itemIndex: Int) -> AnyObject? { + public func invokeAction(actionType: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath, itemIndex: Int, userInfo: [NSObject: AnyObject]? = nil) -> AnyObject? { if let action = actions[actionType.key] { return action.invoke(ActionData(cell: cell as? C, indexPath: indexPath, item: items[itemIndex], itemIndex: itemIndex)) @@ -117,7 +117,7 @@ public class TableConfigurableRowBuilder AnyObject? { + public override func invokeAction(actionType: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath, itemIndex: Int, userInfo: [NSObject: AnyObject]? = nil) -> AnyObject? { switch actionType { case .configure: diff --git a/Tablet/TableSectionBuilder.swift b/Tablet/TableSectionBuilder.swift index b106bb8..f74bdd3 100644 --- a/Tablet/TableSectionBuilder.swift +++ b/Tablet/TableSectionBuilder.swift @@ -50,7 +50,7 @@ public class TableSectionBuilder { self.footerTitle = footerTitle if let initialRows = rowBuilders { - self.builders.appendContentsOf(initialRows) + builders.appendContentsOf(initialRows) } } @@ -84,4 +84,9 @@ public extension TableSectionBuilder { builders.removeAll() } + + public func appendRowBuilder(rowBuilder: RowBuilder) { + + builders.append(rowBuilder) + } } \ No newline at end of file diff --git a/Tablet/Tablet.swift b/Tablet/Tablet.swift index 4b3db85..12158ed 100644 --- a/Tablet/Tablet.swift +++ b/Tablet/Tablet.swift @@ -122,5 +122,5 @@ public protocol RowBuilder { var reusableIdentifier: String { get } var estimatedRowHeight: CGFloat { get } - func invokeAction(actionType: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath, itemIndex: Int) -> AnyObject? + func invokeAction(actionType: ActionType, cell: UITableViewCell?, indexPath: NSIndexPath, itemIndex: Int, userInfo: [NSObject: AnyObject]?) -> AnyObject? } \ No newline at end of file diff --git a/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/maxsokolov.xcuserdatad/UserInterfaceState.xcuserstate b/TabletDemo/TabletDemo.xcodeproj/project.xcworkspace/xcuserdata/maxsokolov.xcuserdatad/UserInterfaceState.xcuserstate index 128e146fecfed47a8333fb56e4cc8352000da13a..5dccf4a9bf4afea2185125d67cfd45f2d0683a85 100644 GIT binary patch delta 14008 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

dOTfEPoT{-!oU>+0S0au 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 delta 13998 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 diff --git a/TabletDemo/TabletDemo/Base.lproj/Main.storyboard b/TabletDemo/TabletDemo/Base.lproj/Main.storyboard index 7c1d36f..65ef436 100644 --- a/TabletDemo/TabletDemo/Base.lproj/Main.storyboard +++ b/TabletDemo/TabletDemo/Base.lproj/Main.storyboard @@ -1,8 +1,8 @@ - + - + @@ -23,14 +23,14 @@ - + - + - + - +