This is because the delegate and table data source is a simple destination pointer, not a weak one. Therefore, after removing the view controller that contains the table, you can send events to the controller. To avoid this, you can manually set the tableview and datasouce delegate to zero in the dealloc method. By the way, this happens not only with tables.
source share