I have a view composed of two table views (custom split view) divided by a splitter image. When a user clicks an item on the right view, a modal view pops up and the user edits some values. Once he clicks submit, the edited values must be updated in the respective columns of the table views, on both sides, after a backend web service acknowlegdes success.
I call a delegate method on the custom split view to do the update. The delegate call is very slow, so that I have an activity indicator placed on the table view, but it is not coming on screen during refresh. The updated data comes up properly after some time. If I comment the fetch code, the activity indicator likewise comes up after a while. So obviously the delegate call is very slow. The user gets confused if we don’t show any activity happening in the screen during table reload.
- Why is the activity indicator added to table views not getting displayed?
- Is there any better approach than what I did so that the user knows some operation is happening in the background so that he can wait?
Don’t wait in the delegate. That will block the UI and the activity indicator. Return from the delegate method immediately, and use another asynchronous networking callback to finish the update of your tableview element.