This is because when you set the / dataSource delegate for yourself, in the loop it gets the excess and will have the last in the array as the current delegate / dataSource.
You can set "tags" in tableViews, and then in callbacks do manipulations based on the tableView tag.
Another option would be to loop through the array of tableViews to get the current one, but this is not very efficient, so I think the first option is better.
Petar source share