'keyWindow'已不推荐使用:在iOS 13.0中,Objective-C [duplicate]中首次不推荐使用

问题描述 投票:-2回答:1

这是显示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> is deprecated: first deprecated in iOS 13.0

ios objective-c ios13 uiwindow uiscenedelegate
1个回答
2
投票

您可以通过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;
© www.soinside.com 2019 - 2024. All rights reserved.