我需要从应用程序代理传递一个字符串到我的初始视图控制器, 有人可以列出我做这件事的最好方法,我也尝试使用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. 视图控制器不是从应用程序委托呈现
- 3. 应用程序委托人看不到视图控制器
- 4. 将数据从视图控制器传递到具有委托的视图控制器
- 5. 核心数据无法将managedObjectContext从应用程序委托传递给视图控制器
- 6. 委托方法不传递数据到第二个视图控制器
- 7. Xcode的应用程序委托给每个视图控制器
- 8. iOS4中的应用程序委托和视图控制器
- 9. 将数据从控制器传递到PHP MVC应用程序中的视图
- 10. 使用协议和委托在视图控制器之间传递数据
- 11. 将scrollview委托传递给子视图控制器
- 12. 如何从应用程序委托和/或其他视图控制器访问多个视图控制器?
- 13. 将数据从应用程序控制器传递到子控制器
- 14. 使用委托给视图控制器
- 15. 将数据从视图控制器传递到另一个视图控制器
- 16. 将数据从表格视图控制器传递到视图控制器
- 17. 从应用程序委托中解除模态视图控制器
- 18. swift,UIUserNotificationAction从视图控制器,而不是应用程序委托
- 19. 从应用委托推视图控制器
- 20. 传递数据从视图到控制器使用AJAX
- 21. 如何在应用程序启动时从应用程序委托加载不同的视图控制器类(例如,从应用程序委托)
- 22. 将图像和数据从视图传递到控制器
- 23. 试图将模型数据从视图传递到控制器
- 24. 如何将数据从视图控制器传递到容器?
- 25. 从数据传递到控制器从视图与C#/ Razor MVC
- 26. 从应用程序的委托打开控制器
- 27. CLLocationManager委托/多个视图控制器
- 28. 视图控制器委托返回无
- 29. 将数据从控制器传递到视图并返回到控制器
- 30. 将数据从控制器传递到视图并返回到控制器
这不是出于某种原因。原因很明显,应用程序委托的目的是响应应用程序状态的变化。使用它作为数据和常量的倾倒基础是糟糕的形式,并导致依赖于在MVC范例中不是贡献公民的对象。 – Tyten 2015-02-10 21:29:02