1
resposta

App delegate(self) não acessa propriedade Window

Professora,

no curso você ensina a criar através do App Delegate, contudo nas novas atualizações temos o Scene Delegate. Parece que o App Delegate não acessa window quando eu escrevo self.window.rootViewController ele reclama que App Delegate não conhece window e da crash, mas quando tentei fazer o mesmo procedimento em Scene ele rodou, porém como não estou dentro do método didFinishLaunchingWithOptions que pertence ao Appdelegate ele não carrega a tableView e sim a view que criamos via storyboard. Como posso usar o método window dentro de didFinishLaunchingWithOptions agora que ele pertence Scene? eu tentei criar um objeto dentro do AppDelegate chamado scene e fiz o seguinte : self.widow,rootviewController = scene.window.rootViewController , mas não adiantou , porque novamente estou tentando acessar window no self ( AppDelegate) e ele não existe. Acredito que a solução é criar uma variavel window dentro do AppDelegate, mas não sei como fazer isso.

1 resposta

Olá, Vitor!

Entendo a sua dúvida em relação ao uso do App Delegate e do Scene Delegate no Objective-C. Com as atualizações mais recentes, o Scene Delegate se tornou responsável por gerenciar as janelas (windows) da sua aplicação.

Para acessar a window dentro do método didFinishLaunchingWithOptions no Scene Delegate, você pode utilizar o seguinte código:

UIWindowScene *windowScene = (UIWindowScene *)scene;
self.window = [[UIWindow alloc] initWithWindowScene:windowScene];

Dessa forma, você estará criando uma nova instância da window e associando-a à propriedade window do seu Scene Delegate. Assim, você poderá utilizar self.window para acessar a window dentro desse método.

Espero que isso possa te ajudar a resolver o problema! Se tiver mais alguma dúvida, é só perguntar.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software