ios swift弹出自定义视图,不管当前视图控制器每30分钟一次

时间:2016-11-18 07:02:10

标签: ios swift popup

我需要一个独立于当前呈现视图控制器的自定义视图控制器, 它应该每30秒显示一次,当用户点击弹出窗口时,它应该隐藏或消除。

我一直在寻找但没有任何效果,任何帮助都将受到赞赏。

由于

3 个答案:

答案 0 :(得分:0)

在AppDelegate中编写逻辑。它是一个单例类,它的实例在App的整个生命周期中保留在内存中,你可以使用

呈现视图控制器
UIApplication.shared.keyWindow?.rootViewController?.present(yourVC, animated: true, completion: nil)

您无需知道当前哪个视图控制器在顶部:)

答案 1 :(得分: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)

    }

答案 2 :(得分:0)

要显示每30秒后弹出一次,您应该使用间隔为30秒的NSTimer。每30秒后调用一个选择器(比如showPopUp)方法,在初始化NSTimer时指定该方法。在这个showPopUp中,您应该显示弹出窗口,您可以使用UIAlertController并在窗口中添加它。

以上所有实现都应该在Appdelegate.m

中完成