'keyWindow' устарело: впервые объявлено устаревшим в iOS 13.0 в Objective-C

Это мое простое действие кнопки, чтобы показать файл XIB, который на самом деле является сканером штрих-кода в Objective-C.

 - (IBAction)startCamera:(id)sender {
    BarcodeScannerVC * controller = [[BarcodeScannerVC alloc] initWithNibName:@"BarcodeScannerVC" bundle:[NSBundle mainBundle]];

    //[self presentViewController:controller animated:YES completion:nil];
     UIWindow * currentwindow = [[UIApplication sharedApplication] keyWindow];
     [currentwindow.rootViewController presentViewController:controller animated:YES completion:nil];
  }

Но, к сожалению, приходит предупреждение:

keyWindow устарело: впервые не рекомендуется в iOS 13.0

Я знаю, что, поскольку iOS 13 поддерживает несколько сцен, но есть ли способ решить эту проблему в Objective-C? Я видел версии Swift, но у меня не получилось с Objective-C.

‹Code› keyWindow ‹/code› устарело: впервые устарело в iOS 13.0


person Fionashoff    schedule 02.03.2020    source источник
comment
Вы проверили эту ссылку?   -  person Ketan Odedra    schedule 02.03.2020


Ответы (1)


Вы можете использовать окно через класс AppDelegate, например ..

BarcodeScannerVC * controller = [[BarcodeScannerVC alloc] initWithNibName:@"BarcodeScannerVC" bundle:[NSBundle mainBundle]];

//[self presentViewController:controller animated:YES completion:nil];
UIWindow * currentwindow = [[UIApplication sharedApplication] delegate].window;
[currentwindow.rootViewController presentViewController:controller animated:YES completion:nil];

Здесь я изменил, чтобы получить только строку текущего окна, просто измените ее.

UIWindow * currentwindow = [[UIApplication sharedApplication] delegate].window;
person vipul thummar    schedule 02.03.2020