在每个视图控制器上显示视图

时间:2018-02-16 08:05:54

标签: ios swift3 uiview uiviewcontroller xib

我必须在接收推送通知时显示当前视图控制器的视图。我希望我创建一个可以作为插件添加到当前视图控制器的视图,以便尽管为每个视图控制器添加相同的视图。我只是添加当前显示的视图控制器。

请帮我解决这个问题。

此外,视图包含一些按钮 - 所以我应该在哪里添加按钮操作。

2 个答案:

答案 0 :(得分:0)

您可以撰写UIViewController的扩展名。这样的事情。

extension UIViewController {    
    func showNotificationView() {
        let notiView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 50))
        notiView.autoresizingMask = [.flexibleWidth, .flexibleBottomMargin]
        notiView.backgroundColor = .red
        self.view.addSubview(notiView)

        let button = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
        button.addTarget(self, action: #selector(callbackButton(_:)), for: .touchUpInside)
        button.backgroundColor = .green
        notiView.addSubview(button)
    }

    @objc func callbackButton(_ sender:Any) {
        // button callback
    }
}

答案 1 :(得分:0)

如果您在窗口上显示ViewController以显示推送将会很好。在窗口中,我们不需要关心当前可见的控制器。