UISwitch中的UINavigationBar功能

时间:2016-07-22 19:01:08

标签: ios swift uinavigationbar uiswitch

我在导航控制器中添加了一个UISwitch。此开关控制基础tableview并在2个数据源之间切换。但是,当我尝试添加IBOutlets和Actions时,建议的类型显示为UIBarButtonItem,但是当我将其保存为UISwitch时,所以我可以使用.on布尔值。但是,似乎开关没有做任何事情。当我点击它没有发生任何事情,我不知道为什么。我的代码如下。

@IBAction func PreferencesToggled(sender: UIButton) {
        if DataToggle.on
        {
            let defaults = NSUserDefaults.standardUserDefaults()
            if let prefs = defaults.objectForKey("teachPref"){
                data = prefs as! [newsarticle]
                self.tableView.reloadData()
            }
            else{
                data = [newsarticle]()
                data.append(newsarticle(name: "No Teachers Saved",desc: "http://www.google.com"))
            }
            let footer = UIView()
            self.tableView.tableFooterView = footer
        }
        else{
            self.tableView.tableFooterView = nil
            getdata()
        }
    }

1 个答案:

答案 0 :(得分:0)

这是如何以编程方式将切换添加到导航栏:

    let switchView = UISwitch()
    switchView.addTarget(self, action: #selector(self.PreferencesToggled(_:)), forControlEvents: .ValueChanged)
    //customize your switch here
    let barBtn = UIBarButtonItem(customView: switchView)
    self.navBar?.topItem?.setRightBarButtonItem(barBtn, animated: false)