我有一个叫AppController
的课,
我在AppDelegate
中有以下方法,当选择菜单项时会调用该方法。
-(IBAction)selectSug:(id) sender
{
AppController * vc = [[AppController alloc]init];
[vc selectSugItem:sender];
}
但是此方法创建了
AppController
的新实例,因此我无法使用AppController
中变量的现有值。请帮我解决。谢谢
最佳答案
如果这个AppController
类是单例的(意味着应该只有一个实例,其余的应用程序可以访问它),则可以简单地创建一个。
将此方法添加到您的AppController
类中(并添加标头声明):
+ (instancetype)shared
{
static id shared = nil;
static dispatch_once_t once;
dispatch_once(&once, ^{
shared = [[self alloc] init];
});
return shared;
}
然后,您可以通过执行以下操作来调用它:
-(IBAction)selectSug:(id) sender
{
AppController * vc = [AppController shared];
[vc selectSugItem:sender];
}
关于objective-c - 从AppDelegate调用AppController现有实例的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25476857/