2010-07-14 129 views
0

我是iphone開發和目標c的新手,但希望有些人比我更聰明,可以伸出援助之手。這是我的問題:在視圖控制器之間傳遞非靜態對象

我有一個基於視圖的應用程序與約7個不同的視圖控制器。用戶通過底部的選項卡導航。我讓用戶在第一個視圖控制器中輸入數據到一個名爲「copies」的對象。我需要將副本值複製到另一個控制器,以便它可以用於計算。這需要在應用程序的其他控制器中的許多對象上完成。

示例:

用戶在第一個視圖控制器中輸入Copies值。
用戶在第6個視圖控制器中輸入價格值。

7視圖控制器計算副本X價格=總計

在我的研究摸索出單方式,但似乎僅限於靜態數據。

確保另一個視圖控制器可以訪問用戶填充的對象的最佳方法是什麼?我試圖避免當前使用SQLite路由。我想堅持一些基本的東西,並在複雜性方面努力。有沒有人有我可以查看的示例代碼?看看其他人如何解決這個問題真的很有幫助。

在此先感謝!

回答

0

如果我已經正確理解了你,整個應用中只有一個copies值和一個price值。如果是這樣的話......

有很多方法可以做到這一點。最簡單的方法(也許):你可以創建一個類的Singleton對象,你定義的類有copiesprice作爲屬性。 Objective-C中的單例是here,你可以在Singleton類中定義你的屬性。然後你可以調用它的共享實例並使用它的值。所以你的代碼看起來像這樣:

[ThatCrazySingleton sharedInstance].copies = 5; 

寫作。

希望這是你在找什麼。

如果你不想使用Singleton,在某些時候,UIViewControllers中的一個需要向其他人發送一個消息給副本和價格值(希望在對象中封裝[「封裝」]) 。這意味着您必須獲得對其他View控制器的引用,您可以通過遍歷層次結構來始終執行此操作。

+0

感謝您的快速響應。是的,只有一個「副本」的共同對象,但該值是用戶輸入。所以,我無法用硬編碼來表示「5」。 這聽起來像消息傳遞可能是要走的路。你有任何參考/示例代碼,我可以看看了解更多? – user390834 2010-07-14 01:20:24

+0

值是用戶輸入是沒有問題的。你可以設置它,例如,一個按鈕的touchUpInside(所以可能會是'[ThatCrazySingleton sharedInstance] .copies = myTextField.text;')TextField將被連接到一個IBOutlet。但是,你應該回去做一些基本的教程,然後大部分這可能是有道理的。 – 2010-07-14 01:25:39

+0

以下是我無法過去的問題。 這是我單獨設置的類 MyManager.h MyManager。米 這是在用戶輸入了「拷貝」之類的UITextView SixthViewController.h SixthViewController.m 這是我所需要的拷貝值,以顯示。 SeventhViewController.h SeventhViewController.m 所以,我將不得不在#6上創建一個按鈕,以在MyManager中設置一個值。它不適合我。如果你可以詳細說明你所說的那些教程可能會有所幫助。 – user390834 2010-07-14 03:39:10

相關問題