karse23
karse23

Reputation: 4115

Block UITabBarController while contents of a view controller not been charged

I'm doing an app that uses a TabBarController and each Tab uses its own navigation controller.

The app has dynamic content and I use viewDidDisappear viewDidAppear methods to create or destroy the objects that I need each time I enter or exit into the ViewController.

My problem is when I start to sail very fast and I don't give time to load the Threads that I use for uploading content such as XML peta app or destroy objects when I leave the ViewController.

How I could control the tabs of the navigationbar or tabbarviewcontroller for not respond until the viewcontroller has loaded all contents?

Excuse me if I'm not well expressed. Thanks!

Upvotes: 1

Views: 165

Answers (2)

EmptyStack
EmptyStack

Reputation: 51374

No matter you use synchronous request or asynchronous request, just show an UIAlertView while loading the data. This will both serve as a notification to the user that something is being loaded, and the it will block the interactions with all the other views on the screen.

Upvotes: 2

Olie
Olie

Reputation: 24675

As others have suggested in comments, I believe that what you want to do is rearrange the order in which things are triggered. Perhaps something like this:

  • On viewWillAppear:, clear (or disable or whatever is appropriate) your objects that are no longer valid and begin the load-new-content thread. Perhaps display a UIActivityIndicator or similar.
  • On viewWillDisappear:, tell the load-new-content thread that it can stop, its results are no longer needed. If you put up an activity indicator, take it down.
  • At the end of the load-new-content thread, take down any activity indicator, update the UI with the new contents and activate.

I don't really see any way around this -- if the UI is not valid until the new content is loaded, then you have to wait for it.

Another solution might be to cache the contents from the previous fetch, and always display those on viewDidLoad. Then, at the end of your new-content-thread, cache the new contents, and update the UI.

Upvotes: 1

Related Questions