Eu tenho um projeto baseado no modelo de aplicativo baseado em navegação. No AppDelegate estão os métodos -applicationDidFinishLoading:
e -applicationWillTerminate:
. Nesses métodos, estou carregando e salvando os dados do aplicativo e armazenando-os em uma variável de instância (na verdade, é um gráfico-objeto).
Quando o aplicativo é carregado, ele carrega MainWindow.xib, que possui um NavigationConroller, que por sua vez possui um RootViewController. A nibName
propriedade RootViewController aponta para RootView (minha classe de controlador real).
Em minha aula, desejo referir-me ao objeto que criei no -applicationDidFinishLoading:
método, para poder obter uma referência a ele.
Alguém pode me dizer como fazer isso? Eu sei como fazer referência entre objetos que criei programaticamente, mas não consigo descobrir como voltar, visto que a etapa do meio foi feita de dentro do arquivo NIB.
fonte
Se eu entender sua pergunta, você deseja fazer referência a variáveis / propriedades de membro em seu objeto AppDelegate? A maneira mais simples é usar [[UIApplication sharedApplication] delegate] para retornar uma referência ao seu objeto.
Se você tem uma propriedade chamada window, pode fazer o seguinte:
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window]; //do something with mainWindow
fonte
Aqui está uma alternativa portátil bem definida para iOS4.0 e superior:
UIApplication *myApplication = [UIApplication sharedApplication]; UIWindow *mainWindow = [myApplication keyWindow]; UIViewController *rootViewController = [mainWindow rootViewController];
ou, em uma linha,
UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
Não se esqueça de definir a
rootViewController
propriedade da janela (digamos em IB) ou isso fará o jack.fonte
Defina uma macro e use-a em qualquer lugar!
#define appDelegateShared ((AppDelegate *)[UIApplication sharedApplication].delegate)
Em Meu Código: -
UIViewController *rootViewController = appDelegateShared.window.rootViewController;
fonte