mirror of
https://github.com/zhigang1992/ProMotion.git
synced 2026-05-31 01:35:41 +08:00
Find the cell's table view and set the action to target the tableview instead of self.
This commit is contained in:
@@ -46,7 +46,7 @@ module ProMotion
|
||||
self.accessoryView.autoresizingMask = UIViewAutoresizingFlexibleWidth
|
||||
elsif data_cell[:accessory] && data_cell[:accessory] == :switch
|
||||
switch_view = UISwitch.alloc.initWithFrame(CGRectZero)
|
||||
switch_view.addTarget(self, action: "accessory_toggled_switch:", forControlEvents:UIControlEventValueChanged)
|
||||
switch_view.addTarget(cell_table_view, action: "accessory_toggled_switch:", forControlEvents:UIControlEventValueChanged)
|
||||
switch_view.on = true if data_cell[:accessory_checked]
|
||||
self.accessoryView = switch_view
|
||||
end
|
||||
@@ -150,5 +150,17 @@ module ProMotion
|
||||
def set_selection_style
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone if data_cell[:no_select]
|
||||
end
|
||||
|
||||
def cell_table_view
|
||||
@cell_tableview ||= begin
|
||||
# iterate up the view hierarchy to find the table containing this cell/view
|
||||
this_view = self.superview
|
||||
while this_view != nil do
|
||||
return this_view if this_view.is_a? UITableView
|
||||
this_view = this_view.superview
|
||||
end
|
||||
nil # this view is not within a tableView
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user