• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在另一个 Controller 上显示一个按钮

[复制链接]
菜鸟教程小白 发表于 2022-12-13 03:55:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有两个 Controller ,一个 Controller 是 controllerOne.swift,在这个 Controller 中我会收到通知,当一个通知到达时,我需要在 controllerTwo.swift 上显示一个按钮。

我的代码是:

ControllerOne.swift

public func websocket(token: Any){
        self.ws.open("ws://"+String(APIHOST)+":"+String(port)+"/ws?token="+String(describing: token))
        self.ws.event.message = { message in
            let res = self.convertToDictionary(text: message as! String)

            if ((res!["notification"]) != nil) {
                self.count_total_notifications_ws = self.count_total_notifications_ws! + 1
                let presentView = UIApplication.shared.keyWindow?.rootViewController?.presentedViewController as? SWRevealViewController

                let tabbarController = presentView?.frontViewController as? UITabBarController

                if (tabbarController?.selectedIndex != 0) {
                    tabbarController?.tabBar.items?[0].badgeValue = self.count_total_notifications_ws?.description
                }else{
                    //Here I need to show a showNotificationsbtn button
                }
            }
        }
    }

ControllerTwo.swift

class NewDashboardViewController: UIViewController, UITableViewDataSource, UITabBarControllerDelegate, UITableViewDelegate {

    //This is the button that I need show
    @IBOutlet weak var showNotificationsbtn: UIButton!  

    @IBAction func showNotifications(_ sender: Any) {true
        self.viewDidAppear(true)
        showNotificationsbtn.isHidden = true
    }

}

有人知道我该怎么做吗? 感谢您的帮助。



Best Answer-推荐答案


在 ViewControllerOne 中

  if ((res!["notification"]) != nil) {
                self.count_total_notifications_ws = self.count_total_notifications_ws! + 1
                let presentView = UIApplication.shared.keyWindow?.rootViewController?.presentedViewController as? SWRevealViewController

                let tabbarController = presentView?.frontViewController as? UITabBarController

                if (tabbarController?.selectedIndex != 0) {
                    tabbarController?.tabBar.items?[0].badgeValue = self.count_total_notifications_ws?.description
                }else{
                    //Here I need to show a showNotificationsbtn button
                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "remoNotificationArrived"), object: nil, userInfo: nil )
                }
            }

在 ViewControllerTwo 中

     override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(true)
            DispatchQueue.main.async {

                NotificationCenter.default.addObserver(self, selector: #selector(self.showButton), name: NSNotification.Name(rawValue: "remoNotificationArrived"), object: nil)

            }
    }

  func showButton(){
       showNotificationsbtn.isHidden = false
    }

关于ios - 在另一个 Controller 上显示一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378264/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap