2011-05-27 25 views
1

我有一個基於UINavigation的應用程序,收集各種屏幕上的信息,並最終使用收集的所有參數提出Web服務請求。如何在UINavigation類型的應用程序中的視圖控制器之間進行通信?

所以我有A,B,C,D視圖控制器。 A獲得名稱&號碼,然後將B推到屏幕上,並帶有一些基本信息ETC ETC,直到它到達D,然後我實際上關閉了Web服務。

我一直使用的窮方法是從A開始複製類字段。這意味着如果我收集姓名和編號,那麼我將這些字段製作成B,然後添加幾個字段,然後C的類字段都是A & B,這似乎是一個糟糕的編程練習。

我能做些什麼來獲得A班在D班的學習領域?我已經得到了一些想法,但不知道它們的有效性。

1)。使用NSNotification(這是否過度?)如果是這樣,我怎麼通過字段? 2)。我只保留所有5個視圖控制器,並最終獲得信息? (看起來非常低效)

3)。我是否應該實例化一個名爲Payload的NSObject類,並且每次從一個視圖控制器跳到下一個視圖控制器時設置它的字段? (如果是這樣,我在A級創建它?如果用戶導航回到A級,那麼它會得到重置ETC ETC)

正如你可以告訴我已經試圖找到一個解決方案,我是相當新的。一些詳細的建議將不勝感激。

回答

0

我會去3),是的,你應該在開始時創建它(A類)。

但是,也許用戶回到A類更改目的值,以便重置它似乎不成問題。

0

爲什麼不使用單例對象並傳遞它呢?

這種方法的優點是:

  • 這裏只有一個實例,其 參考周圍 被傳遞viewcontrollers之間
  • 更改您 化妝會在下一次反映您從另一個 訪問這個對象查看 控制器

並回答你的一個問題,NSNotification允許我們沿着物體傳遞...

下面是由Matt Galloway在iOS中的單例對象的一個​​很好的例子。這是一個我總是指:

http://www.galloway.me.uk/tutorials/singleton-classes/

+0

你會在哪裏實例化這個單身人士? A還是應用程序負載? – jini 2011-05-28 00:23:36

2

根據不同情況,有幾種方法,似乎是適當的。

  1. 結識MVC Design Pattern

  2. 類是沒有數據存儲。如果類沒有與代表對象進行交互的接口,不包括訪問器,那麼你做錯了。

3.

我有一個UINavigation基於 的應用程序,收集各種畫面信息 並最終 使得使用所有 收集到的參數Web服務請求。

所以,您的網絡請求是基於不同的意見收集的參數。爲什麼不創建所述請求的 模型? MyRequest或類似的東西:)還是幾個更具體的變種,共享共同的父類?這個生成器保存邏輯,當你前進槽視圖時收集數據和參數,並在末尾提供NSUrlRequest給WebView,或者提供不同類型的NSURLRequest委託對象,並符合用於顯示下載數據的UITableViewDataSource/Delegate協議。

+0

好吧,我描述了我的情況。你會在這種情況下做什麼? – jini 2011-05-27 23:51:49

相關問題