如何向所有 UIViewControllers 添加一个通用的浮动操作按钮

Posted

技术标签:

【中文标题】如何向所有 UIViewControllers 添加一个通用的浮动操作按钮【英文标题】:How to add one common floating action button to all the UIViewControllers 【发布时间】:2018-12-06 05:59:16 【问题描述】:

我想在我的所有视图控制器中添加相同的浮动操作按钮。我有一个聊天选项(单击此按钮会打开),应该可以从应用程序的所有页面访问。我该怎么做相同。而不是在所有视图控制器中冗余添加。

代码示例会很有帮助。

谢谢

【问题讨论】:

显示你尝试过的代码 您需要在窗口上添加按钮,以便在所有视图控制器中显示 从一个 BaseViewController 继承 【参考方案1】:

让我们添加一个从 UIViewController 派生的“SuperviewController”,然后从 SuperViewController 扩展所有其他视图控制器,并在 SuperViewController 中以编程方式添加 UIButton,这样您就可以访问整个应用程序中的按钮。

【讨论】:

【参考方案2】:

你可以在窗口上拿按钮

var Floatbtn = UIButton(type: .custom)

func setFloatingButton()
    Floatbtn.frame = CGRect(x: 250, y: 450, width: 50, height: 50)
    Floatbtn.setTitle("All Defects", for: .normal)
    Floatbtn.backgroundColor = UIColor(red: 40.0/255.0, green: 167.0/255.0, blue: 128.0/255.0, alpha: 1.0)
    Floatbtn.clipsToBounds = true
    Floatbtn.layer.cornerRadius = 25
    Floatbtn.addTarget(self,action: #selector(OnClockButtonEvent), for: UIControlEvent.touchUpInside)
    if let window = UIApplication.shared.keyWindow 
        window.addSubview(Floatbtn)
    

当 viewcontroller 消失时移除 FloatBtn

func viewWillDisappear(_ animated: Bool) 
Floatbtn.removeFromSuperview() 

【讨论】:

以上是关于如何向所有 UIViewControllers 添加一个通用的浮动操作按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何向多个 UIViewControllers 添加点击手势

如何向所有连接的节点添加一列 - mnesia 表

如何列出所有实时(未释放)的 UIViewControllers?

如何在 xcode 界面生成器中为所有屏幕(UIViewControllers)设置标题图像?

MySQL:如何在查询中向日期时间字段添加一天

我如何向 Google ortools 添加一组值而不是下限和上限?