如何從someView控制器訪問AppDelegate類的屬性值,而無需在視圖控制器中創建委託的引用?Iphone從AppDelegate訪問屬性值
23
A
回答
48
我不太清楚你的意思 - 有多種方法可以從您的應用程序委託信息到視圖控制器和短語「而無需創建委託的參考」目前還不清楚。您的選項基本上是:
- 引用應用程序委託,根據需要進行轉換。您可以在您的視圖控制器類中編寫代碼,如:
id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
- 在創建視圖控制器時傳遞屬性。這需要視圖控制器有一個
@property
聲明和@synthesize
D供使用,那麼你會讓應用程序委託只是在視圖控制器實例上設置屬性。
這些選項都不需要您保留應用程序委託的副本,作爲@property
,但第一個參考代碼只會引用一次委託。
19
[UIApplication的sharedApplication] .delegate
您還需要包括應用程序委託頭文件在您的視圖控制器,並可能強制轉換從ID授人以您的實際應用程序委託類。
#include "MyAppDelegate.h"
((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty;
2
[UIApplication sharedApplication].delegate;
+0
我正在尋找替代方法來實現除了[UIApplication sharedApplication] .delegate;之外的其他方法。 1.類似於通過發佈/訂閱訪問價值? 2.還有一個問題[UIApplication sharedApplication] .delegate;這是一個standrad,爲什麼我問的是我需要在3個不同的類文件中稱爲「sharedObject」的屬性,「sharedObject」駐留在AppDelegate類? – Anandh 2011-03-03 02:37:45
相關問題
- 1. 從AppDelegate訪問視圖控制器的屬性
- 2. 從NSViewController訪問AppDelegate方法
- 3. 試圖從AppDelegate訪問UINavigationController
- 4. 的AppDelegate訪問
- 5. 訪問css屬性值
- 6. 訪問屬性值xpath
- 7. Tomcat - 從JSP訪問屬性
- 8. 從Java訪問build.xml屬性
- 9. 從類訪問屬性 - PHP
- 10. 從DataTemplate訪問ItemsPanel屬性
- 11. 從CSS訪問屬性
- 12. 從GroupStyle.HeaderTemplate訪問Combobox屬性
- 13. AppDelegate從不同的類訪問,從RootController.m
- 14. 如何訪問uiControl類中的appdelegate值
- 15. 所選值的屬性訪問問題
- 16. 訪問屬性
- 17. 訪問屬性
- 18. 訪問屬性
- 19. 訪問屬性
- 20. 訪問屬性
- 21. 訪問屬性
- 22. 訪問屬性
- 23. 如何根據不同的屬性值訪問屬性值?
- 24. Swift - 從viewController訪問AppDelegate窗口
- 25. 訪問視圖控制器從AppDelegate中
- 26. 從輔助線程訪問實例屬性(iPhone-SDK)
- 27. AppDelegate屬性被重置viewControllers
- 28. ios AppDelegate屬性聲明
- 29. 如何訪問js中的屬性值?
- 30. 訪問自定義選擇屬性值
還有一個問題[UIApplication sharedApplication] .delegate;這是一個standrad方式,爲什麼我問我需要在3個不同的類文件中稱爲「sharedObject」的屬性,「sharedObject」駐留在AppDelegate類? – Anandh 2011-03-03 02:39:47
除非你想創建一個單獨的類來容納屬性,否則使用'[[UIApplication sharedApplication]委託]'是在多個類中訪問該屬性的標準方式。 (說實話,無論如何,你基本上都是在訪問一個單身人士,不需要乘以單身人士。) – Tim 2011-03-03 03:06:56