Как вызвать метод AppDelegate из RootViewController без передачи делегата? - PullRequest
6 голосов
/ 22 апреля 2011

как вызвать метод AppDelegate из RootViewController без передачи делегата?

Просто интересно, есть ли способ сделать это? (или мне нужно создать объект делегата в RootViewController для хранения ссылки на AppDelegate)

Ответы [ 3 ]

7 голосов
/ 22 апреля 2011
[[[UIApplication sharedApplication] delegate] someMethod];

Работает как шарм!

6 голосов
/ 22 апреля 2011

Вы можете получить доступ к делегату приложения с любого контроллера, используя

MyDelegate* aDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate];
2 голосов
/ 05 июня 2011

Это происходит так часто, что я всегда добавляю метод к MyCustomAppDelegate, чтобы сделать это для меня (поэтому у меня нет большого количества приведения в моем коде.

@implementation MyCustomAppDelegate ()
- (MyCustomAppDelegate *)appDelegate {
  return (MyCustomAppDelegate *)[[UIApplication sharedApplication] delegate];
}
@end

теперь куда угодно я могу позвонить

[MyCustomAppDelgate appDelegate]
...