我在导航控制器中添加了一个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()
}
}
答案 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)