在主故事板顶部呈现锁定屏幕

Posted

技术标签:

【中文标题】在主故事板顶部呈现锁定屏幕【英文标题】:Presenting lock screen on top of main storyboard 【发布时间】:2020-05-03 02:41:25 【问题描述】:

当用户从didFinishLaunchingWithOptionsapplicationWillEnterForeground 进入应用程序时,我想显示锁定屏幕。

我在另一个故事板中设置了锁屏,而不是在主故事板上。

如果我实例化锁屏故事板然后移动到主故事板,应用程序将不会保持用户离开应用程序时的相同状态,当使用applicationWillEnterForeground 进入应用程序时。

因此,如果用户在特定的视图控制器中,然后离开应用程序并再次使用applicationWillEnterForeground 进入,故事板将被实例化为锁屏故事板,一旦用户解锁屏幕,他将被重定向到rootViewController 的主故事板,而不是他之前所在的视图控制器。

主情节提要以 UITabBarController 开头。

你是如何克服这个问题的?

if let lockedViewController = UIStoryboard(name: "Locked", bundle: .main).instantiateInitialViewController() 

    window?.rootViewController = lockedViewController
    window?.makeKeyAndVisible()

锁屏故事板:

谢谢

【问题讨论】:

为锁屏使用单独的窗口 谢谢,您有知道如何实现这一目标的示例或文章吗? 【参考方案1】:

只需创建 UIWindow 的新实例并在您的 appdelegate 中保留引用。

在前台转换创建新窗口和解锁释放窗口

private var lockWindow:UIWindow?
func createNewWindow()  
    lockWindow = UIWindow(frame: UIScreen.main.bounds)
    lockWindow!.rootViewController = UIStoryboard(name: "Locked", bundle: .main).instantiateInitialViewController()
    lockWindow!.windowLevel = UIWindow.Level.alert + 1;
    lockWindow!.isHidden = false


func releaseWindow() 
    self.lockWindow?.isHidden = true
    self.lockWindow = nil

【讨论】:

以上是关于在主故事板顶部呈现锁定屏幕的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 呈现比故事板更高

故事板iOS - 如何以屏幕尺寸的百分比而不是静态值顶部引脚边距给出上边距?

故事板 - 如何在没有动画和显示屏幕的情况下自动执行转场

故事板布局与屏幕边缘齐平,但在实际 iPhone 7 Plus 中显示间隙

iOS:自动布局的问题。模拟器结果更改为故事板更改

iOS 故事板视图约束问题