我必须创建AppDelegate的sharedInstance并在我的应用程序中使用任何地方。
答案 0 :(得分:6)
像这样使用:
在AppDelegate.h中
+ (AppDelegate *)sharedAppDelegate;
在AppDelegate.m中
+ (AppDelegate *)sharedAppDelegate{
return (AppDelegate *)[UIApplication sharedApplication].delegate;
}
答案 1 :(得分:3)
在Constants.h中声明语句
#define myappDelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate])
如果在.pch文件中声明Constants.h,则可以在应用程序中的任何位置使用myappDelegate
答案 2 :(得分:1)
在每个ViewControllers中使用它
#import "AppDelegate.h"
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
或者你可以在ViewController子类中创建一个方法&在每个ViewControllers中使用它。
-(AppDelegate*) app
{
return (AppDelegate*) [[UIApplication sharedApplication] delegate];
}
在UIViewController的子类中 - 然后将其作为所有视图控制器的基类。
然后,[自我app]工作,你不必保留参考。
答案 3 :(得分:1)
你可以像下面那样使用
在Objective C :您可以在.pch文件和用户中随意添加以下行
#define myAppDelegate (AppDelegate *)[[UIApplication sharedApplication] delegate]
并使用myAppDelegate.someVariable or [myAppDelegate somemethod]
在Swift中
Swift> = 1.2(Xcode 6.3引入)
let myAppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let aVariable = myAppDelegate.someVariable
斯威夫特< 1.2
let myAppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let aVariable = myAppDelegate.someVariable
答案 4 :(得分:0)
使用此:
+ (AppDelegate *)appDelegate
{
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
答案 5 :(得分:0)
其他答案使用UIApplication.shared.delegate,但你需要总是'as! AppDelegate',所以一个Swift更干净的代码:
// AppDelegate.swift
static var shared = AppDelegate() // Declare a static variable as an instance of AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Singleton
AppDelegate.shared = self // set the value of "shared" to the current instance
return true
}
的用法强>
AppDelegate.shared
答案 6 :(得分:-3)
任何ViewController它正在使用这个appDelegate,包括Xcode 8
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];