2016-11-18 2 views
0

Мне нужно, чтобы пользовательский контроллер просмотра не всплывал независимо от текущего представления контроллера представления, он должен отображаться каждые 30 секунд, и когда пользователь нажимает на всплывающее окно, он должен скрывать или увольнять.ios swift popup custom view независимо от текущего контроллера представления каждые 30 минут

Я искал, но ничего не работал, Любая помощь будет оценена.

Благодаря

+0

modal или non modal? не модальный вы на вид uiscreen.mainscreen. modal present vc от rootviewcontroller. –

ответ

0

Запись логика в AppDelegate. Это класс синглтона и экземпляр он остается в памяти на протяжении всего жизненного цикла приложения, и вы можете представить вид контроллер с помощью

UIApplication.shared.keyWindow?.rootViewController?.present(yourVC, animated: true, completion: nil) 

Вам не нужно знать, какой вид контроллера находится на вершине в настоящее время :)

+1

@Khushboo: Используйте этот код внутри метода таймера. – Poles

+0

@ Поля: Спасибо, друг :) Yup u на 100% правильно :) –

0

это работает для меня попробовать это и дайте мне знать:

let imageV: UIImageView = UIImageView(frame: CGRectMake(90, 0, 80, 80)) 
       imageV.image = UIImage(named: "stop_record")! 
       self.message = UIAlertView(title: “Custom view”, message: “Processing…”, delegate: self, cancelButtonTitle:nil) 
       let v: UIView = UIView(frame: CGRectMake(10, 20, 100, 100)) 
       let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:#selector(SONGS.new(_:))) 
       tapGestureRecognizer.numberOfTapsRequired = 1 
       if tapGestureRecognizer.numberOfTapsRequired == 1 
       { 
        imageV.userInteractionEnabled = true 
        imageV.addGestureRecognizer(tapGestureRecognizer) 
        v.addSubview(imageV) 
        self.timer.invalidate() 
       } 
       self.timer = NSTimer.scheduledTimerWithTimeInterval(180.0, target: self, selector: #selector(SONGS.displayAlert), userInfo: nil, repeats: false) 
       let label = UILabel(frame: CGRectMake(90, 40, 100, 101)) 
       label.textAlignment = NSTextAlignment.Center 
       self.message.setValue(v, forKey: "accessoryView") 
       self.message.tag = 3 
       self.message.show() 




func displayAlert 
{ 
    self.message.dismissWithClickedButtonIndex(0,animated: true) 

    } 
0

за показ всплывающих через каждые 30 секунд, вы должны использовать NSTimer с интервалом в 30 секунд. Через каждые 30 секунд вызывается метод выбора (например, showPopUp), который вы указываете при инициализации NSTimer. В этом showPopUp вы должны показать всплывающее окно, которое вы можете использовать UIAlertController и добавить его в окне.

Все вышеперечисленное внедрение должно быть выполнено в Appdelegate.m.

Смежные вопросы