Skip to main content

How to implement UINavigationControllerDelegate to call web service for data driven app



In my app, I have 5 navigation controllers. One of the navigation controllers displays 3 view controllers sharing the same data (from a Sqlite database). The only difference is that they present the data in a different way :





  • ViewController 1 = recipes sorted by countries



  • ViewController 2 = recipes sorted by vegetables



  • ViewController 1 = recipes sorted by wines to drink with







The Sqlite database is fed with a web-service. As new recipes may be added anytime, I need to refresh the database anytime the application becomes active. And as the application can become active on any of the view controller (depending on the one selected when the app went to background) I have to write the refresh code in the 3 view controller implementation files.





I think this method sucks because the web-service is called when the user switch between the navigation controllers. This create frequent and useless traffic and database updates. I would prefer to do the job only one time per application use (active/background). I was thinking of UINavigationControllerDelegate. This way I will do the refresh only once, when the application becomes active, and whatever the navigation controller is.





My questions are :





  • Do you think this is a good method or would you suggest another ?



  • Do you know how to implement the UINavigationControllerDelegate in this case ?



  • Is this possible only in the App Delegate or can I do it outside ?







Thanks in advance for any help.


Comments

  1. You're on the right track. I think you should create a separate class that does the refresh, and you should call that class from your appDelegate's

    applicationDidBecomeActive:


    method. It really should have nothing to do with navigation conrollers.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 1 Final Exam 2011 latest (hot hot hot)

  Hi! I have been posted content of ccna1 final exam (latest and only question.) I will post the answer and insert image on sunday. If you care, please subscribe your email an become a first person have full test content. Subcribe now  Some question  have not content because this question have images content. So that can you wait for me? SUNDAY 1. A user sees the command prompt: Router(config-if)# . What task can be performed at this mode? Reload the device. Perform basic tests. Configure individual interfaces. Configure individual terminal lines. 2. Refer to the exhibit. Host A attempts to establish a TCP/IP session with host C. During this attempt, a frame was captured with the source MAC address 0050.7320.D632 and the destination MAC address 0030.8517.44C4. The packet inside the captured frame has an IP source address 192.168.7.5, and the destination IP address is 192.168.219.24. At which point in the network was this packet captured? leaving host A leaving ATL leaving...