美文网首页
iOS_Swift_Note2_NotificationCent

iOS_Swift_Note2_NotificationCent

作者: 范女青 | 来源:发表于2018-06-20 17:52 被阅读0次

    NotificationCenter
    这里以触发SideMenu为例:点击button打开SideMenu,再点击隐藏

    1. 在点击Button的action里,触发post
    @IBAction func ClickList(_ sender: Any) {
    //这里自定义notification名字
            NotificationCenter.default.post(name: Notification.Name("ToggleSideMenu"), object: nil )
        }
    
    1. 在控制SideMenu的VC添加observer(接收notification)
    override func viewDidLoad() {
            super.viewDidLoad()
    //接收notification,触发SideMenu动作
    //其中:Name("与post相同"),#selector(要触发的方法名)
            NotificationCenter.default.addObserver(self,
             selector: #selector(toggleSideMenu),
             name: NSNotification.Name("ToggleSideMenu"),
             object: nil)
        }
    
    1. 附上控制SideMenu的方法,需要用@objc
        //SideMenu出现和隐藏的方法
        @objc func toggleSideMenu()
        {
            //如果当时的状态是“出现”,则改为“隐藏”
            if sideMenuOpen
            {
                sideMenuOpen = false
                sideMenuConstraint.constant = -240
            }
                //如果当时的状态是“隐藏”,则改为“出现”
            else
            {
                sideMenuOpen = true
                sideMenuConstraint.constant = 0
            }
            //动画
            UIView.animate(withDuration: 0.3){
                self.view.layoutIfNeeded()
            }
        }
    

    相关文章

      网友评论

          本文标题:iOS_Swift_Note2_NotificationCent

          本文链接:https://www.haomeiwen.com/subject/vrixyftx.html