UITableView is a VIEW remember that UIKit is strongly MVC based. It is your responsibility to keep the model updated. Infact, your controller would probably call (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
in response to observing (or being notified) of a change in your model.
For example, say you UI has a "delete 10 random items". The correct flow for this is:
- view - user presses button
- controller - receives button press updates model
- controller - observes change in model
- view updates list
Although it feels a little contrived - why not make the view just update the list and tell the model? it will make bette rcode that is easier to understand and that works better with UIKit. This design for example doesn't assume that the controller in 2 and 3 is the same controller so you have more flexibility.
I would normally apply YAGNI to ll design but I believe the strong MVC focus os UIKit means that YAGNT (you ARE gonna...)