Метод доступа в viewcontroller из appdelegate - PullRequest
0 голосов
/ 13 марта 2011

Я хочу использовать appdelegate для applicationDidBecomeActive и хочу, чтобы эта функция использовала метод, который помещен в viewcontroller.Как я это сделаю?Единственное, что я нахожу, - это доступ из любой точки к приложению.

Ответы [ 3 ]

3 голосов
/ 13 марта 2011

Вам нужно дать вашему классу applicationDelegate ссылку на viewController , для которого вы хотите вызвать метод. Вы можете сделать это, создав переменную экземпляра или свойство applicationDelegate , которое указывает на ваш viewController , для которого вы хотите иметь возможность вызывать метод. Если вы создаете свой viewController в методе init вашего appDelegate или в вашем методе applicationDidLoad:, вы можете просто присвоить этот viewController переменной / свойству экземпляра, которое вы создано.

2 голосов
/ 20 марта 2012

Вы можете получить доступ к корневому контроллеру представления вашего приложения из делегата приложения через свойство окна, то есть self.window.rootViewController. Контроллер представления, к которому вы хотите получить доступ, должен быть дочерним по отношению к корневому контроллеру представления или, по крайней мере, доступен через него.

0 голосов
/ 14 апреля 2011

У меня была такая же проблема, что мне нужно было вызывать метод на моем контроллере представления из делегата приложения.После некоторого поиска и прочтения этого ответа я попытался вызвать метод (рассматриваемый метод был saveData) в моем контроллере представления непосредственно из делегата приложения, и он работал как требуется.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[self.window addSubview:rootViewController_iPad.view];
    [self.window makeKeyAndVisible];

    return YES;
}


        -(void)applicationWillResignActive:(UIApplication *)application {
        [rootViewController_iPad saveData];
    }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...