2017-12-02 17 views
0

アプリを最初に起動するとき、またはバックグラウンドからフォアグラウンドに戻るときにパスワードが必要なアプリを開発しています。 最初の起動は簡単です。しかし、バックグラウンドからアプリをフォアグラウンドに戻すときは、パスワードを入力した後、最後に閲覧したビューに戻る方法は? お願いします! 私はappDelegateにパスワードUIViewを追加したいのですが、どうやって行うのか分かりません。これは正しい方法ですか?アプリがバックグラウンドからフォアグラウンドに戻ったときのパスワード表示

let pwview = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)) 
pwview.backgroundColor = UIColor.black 
UIApplication.shared.keyWindow?.addSubview(pwview) 

これは機能しません。

+0

に記録されたときに、再びそれを却下ユーザーが入力するためのパスワードビューを表示したいですかバックグラウンドに行った後にアプリアプリを開いたときは? –

+0

@ rajtharan-gはい。正しいパスワードを入力した後、アプリは最後に閲覧したユーザーのビューを表示することができます。 – user1951072

答えて

0

これを処理するには、アプリケーションデリゲートのメソッドを使用できます。

func applicationWillEnterForeground(_ application: UIApplication) { 
    // Called when app comes to foreground 
} 

extension UIApplication { 

class func topViewController(base: UIViewController? = (UIApplication.sharedApplication().delegate as! AppDelegate).window?.rootViewController) -> UIViewController? { 
if let nav = base as? UINavigationController { 
    return topViewController(base: nav.visibleViewController) 
} 
if let tab = base as? UITabBarController { 
    if let selected = tab.selectedViewController { 
    return topViewController(base: selected) 
    } 
} 
if let presented = base?.presentedViewController { 
    return topViewController(base: presented) 
} 
return base 
} 

} 

上記の方法をアプリケーションデリゲートから使用して、トップビューコントローラを取得して表示することができます。

+0

はい、私はこのメソッドで扱うことができますが、他のすべてのビューの上にUIViewを追加する方法と、最後にユーザーが訪れたviewContrllorに戻る方法がわかりません。 – user1951072

0

pwviewとpwViewControllerを作成し、

viewController.present(pwViewController, animated: true, completion: nil) 

そして、現在のビューコントローラからそれを提示あなたは

関連する問題