Всплывающее окно не появляется, когда мы закрываем приложение, не убивая приложение Swift 4 - PullRequest
0 голосов
/ 04 июня 2018

Доброе утро У меня проблема, когда я захожу в свое приложение, появляется всплывающее окно с функцией func viewDidAppear (), но когда, например, я нажимаю кнопку «Нет», которая закрывает приложение точно так же, как когда мы нажимаем кнопку «Домой».Когда я снова вхожу в приложение, не убивая его, всплывающее окно больше не появляется ...

Я ищу 3 часа и не могу найти решение ...

Воткод:

 override func viewDidAppear(_ animated: Bool) {
        if warning == true{
            self.alertStart()
        }
    }
    
    func alertStart(){
        let alertatstart = UIAlertController(title: "ATTENTION !", message: "La version de cette application est en cours de bêta, de nombreux bug sont à déclarer, souhaitez-vous tout de même continuer ?", preferredStyle: .alert)
        alertatstart.addAction(UIAlertAction(title: "Oui", style: .destructive, handler:{ (UIAlertAction) in
            self.warning = false
            if self.betaKeyAlreadyConfirmed == true {
                
            }else{
               self.askDevMail()
            }
        }))
        alertatstart.addAction(UIAlertAction(title: "Non", style: .cancel, handler: { (UIAlertAction) in
            self.warning = true
            UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
        }))
        self.present(alertatstart, animated: true)
    }
    

Я уже пытался поместить функцию в viewDidLoad (), но она не работает ...

Надеюсь, вы мне поможете,Большое спасибо, если вам нужна дополнительная информация, скажите мне в ответах

Луи.

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

Пожалуйста, попробуйте на уровне ViewWillAppear или AppDelegate .На уровне AppDelegate он должен работать.

При нажатии кнопки Home приложение переходит в фоновый режим.В противном случае приложение перейдет в режим переднего плана, если вы снова откроете приложение.

В файле appdeletegate.m (appdelegate.swift-Swift) вы можете увидеть следующие функции.

applicationDidBecomeActive и applicationWillDidEnterBackground.Вы можете поместить свой код там.

вот официальный документ

0 голосов
/ 04 июня 2018
override func viewDidLoad() {
    super.viewDidLoad()   
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}

func keyboardWillShow(notification: NSNotification) {
     print("keyboardWillShow")
}

func keyboardWillHide(notification: NSNotification){
     print("keyboardWillHide")
}
0 голосов
/ 04 июня 2018

ViewDidAppear не вызывается, когда вы нажимаете кнопку «Домой» и возвращаетесь снова.

Используйте уведомления для UIApplicationDidBecomeActive и UIApplicationWillResignActive:

В ViewDidLoad:

NotificationCenter.default.addObserver(self, selector: #selector(self.callBackForActiveNotification), name: Notification.Name.UIApplicationDidBecomeActive, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.callBackForBackgroundNotification), name: Notification.Name.UIApplicationWillResignActive, object: nil)

Добавление функций:

@objc func callBackForBackgroundNotification(){
   // This will be called when your app goes in background
}

@objc func callBackForActiveNotification(){
   // This will be called when your app become active, show pop up here again if it is not shown
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...