我有一个叫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/

10-09 02:22