我需要从应用程序代理传递一个字符串到我的初始视图控制器, 有人可以列出我做这件事的最好方法,我也尝试使用NS用户默认值进行保存和检索,但我没有正常工作。从应用程序委托传递数据到视图控制器
28
A
回答
28
接口:
@interface MyAppDelegate : NSObject {
NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
...
@end
,并为App委托.m文件你可以这样写:
@implementation MyAppDelegate
@synthesize myString;
myString = some string;
@end
然后,在viewcontroller.m文件,您可以获取:
MyAppDelegate *appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
someString = appDelegate.myString; //..to read
appDelegate.myString = some NSString; //..to write
+2
这篇文章刚刚救了我的一天。非常感谢朋友。 – Avijit 2014-01-07 11:47:28
+0
你的答案应该包含大写字母:“我的方法是危险和不好的做法,因为它打破封装并创建全局状态。” – 2015-12-17 16:00:05
14
您可以像这样访问您的根视图控制器Ë应用委托:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyViewController* mainController = (MyViewController*) self.window.rootViewController;
[mainController passData:@"hello"];
return YES;
}
17
这对于夫特:
视图控制器
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
此外,如果有要视图控制器之间传递的对象(例如,我有我想分享的CloudKit数据)将此添加到应用程序代表:
/* Function for any view controller to grab the instantiated CloudDataObject */
func getCloudData() ->CloudData{
return cloudDataObject
}
然后回到视图控制器
var model : CloudData = self.appDelegate.getCloudData()
相关问题
- 1. 将数据从视图控制器传递到具有委托的视图控制器
- 2. 核心数据无法将managedObjectContext从应用程序委托传递给视图控制器
- 3. 委托方法不传递数据到第二个视图控制器
- 4. iOS4中的应用程序委托和视图控制器
- 5. 如何从应用程序委托和/或其他视图控制器访问多个视图控制器?
- 6. 将数据从视图控制器传递到另一个视图控制器
- 7. 将数据从表格视图控制器传递到视图控制器
- 8. 使用委托给视图控制器
- 9. swift,UIUserNotificationAction从视图控制器,而不是应用程序委托
- 10. 从应用程序委托中解除模态视图控制器
- 11. 传递数据从视图到控制器使用AJAX
- 12. 如何在应用程序启动时从应用程序委托加载不同的视图控制器类(例如,从应用程序委托)
- 13. 从数据传递到控制器从视图与C#/ Razor MVC
- 14. 将数据从控制器传递到视图并返回到控制器
- 15. 从应用程序的委托打开控制器
- 16. 在cakephp中将数据从视图传递到控制器
- 17. 从视图传递数据到控制器动作
- 18. 从控制器动作传递JSON数据到剃刀视图
- 19. 将数据从视图传递到控制器问题
- 20. 从部分视图传递收集数据到控制器
- 21. 数据从块传递到视图控制器
- 22. 如何将输入数据从视图传递到控制器
- 23. 将数据从视图传递到控制器并返回
- 24. 无法将数据从tableview传递到视图控制器
- 25. 无法从视图数据传递到控制器
- 26. 在zend中将数据从视图传递到控制器
- 27. 将数据从视图传递到控制器(Zend)
- 28. 在MVC中将数据从视图传递到控制器spring
- 29. 将数据从控制器传递到视图
- 30. ASP.NET MVC:从视图传递数据到控制器(Ajax vs jQuery)
这不是出于某种原因。原因很明显,应用程序委托的目的是响应应用程序状态的变化。使用它作为数据和常量的倾倒基础是糟糕的形式,并导致依赖于在MVC范例中不是贡献公民的对象。 – Tyten 2015-02-10 21:29:02