【发布时间】:2015-03-25 07:33:51
【问题描述】:
我正在尝试在我的容器应用程序中为我的 customKeyboard for iOS8 在 Swift 中创建一个设置视图控制器。我已经创建了一个 Bool() 并且我得到了我需要的东西,但是现在我需要让键盘目标检查 bool 值并且我无法导入其他 swift 文件..
我有这个代码:
ViewControllerSettings.swift:
@IBOutlet weak var Switch1: UISwitch!
var dotOn = Bool()
override func viewDidLoad() {
super.viewDidLoad()
if NSUserDefaults.standardUserDefaults().boolForKey("dotOn") == true {
Switch1.setOn(true, animated: true)
} else {
Switch1.setOn(false, animated: true)
}
@IBAction func backSave(sender: UIButton) {
if Switch1.on == true {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "dotOn")
} else {
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "dotOn")
}
}
而且效果很好!但是在我的 KeyboardViewController.swift 中的另一个应用程序目标中,我在 viewDidAppear(animated: true) 中拥有:
if NSUserDefaults.standardUserDefaults().boolForKey("dotOn") == true {
let bSelector : Selector = "dotAfterSpace:"
let doubleTapGesture = UITapGestureRecognizer(target: self, action: bSelector)
doubleTapGesture.numberOfTapsRequired = 2
space.addGestureRecognizer(doubleTapGesture)
} else { }
而且这个没有“if”的函数运行良好……我该怎么办?
经过一些建议后,我编写了这段代码……但我错在哪里?
在 KeyboardViewController.swift 中:
class KeyboardViewController: UIInputViewController {
var otherController = ViewControllerSettings()
override func viewDidAppear(animated:Bool) {
super.viewDidAppear(animated)
KeyboardViewController().otherController = ViewControllerSettings()
if otherController.dotOn {
let bSelector : Selector = "dotAfterSpace:"
let doubleTapGesture = UITapGestureRecognizer(target: self, action: bSelector)
doubleTapGesture.numberOfTapsRequired = 2
space.addGestureRecognizer(doubleTapGesture)
} else { }
let aSelector : Selector = "spacePressed:"
let tapGesture = UITapGestureRecognizer(target: self, action: aSelector)
tapGesture.numberOfTapsRequired = 1
space.addGestureRecognizer(tapGesture)
}
在 ViewControllerSettings.swift 中:
class ViewControllerSettings: UIViewController {
var dotOn = Bool()
【问题讨论】:
-
如果 NSUserDefaults.standardUserDefaults().boolForKey("dotOn") {...}
-
不需要“== true”
-
同样适用于 Switch.on == true
-
@LeonardoSavioDabus 它不起作用.. :/
-
它不会解决你的问题,只是不需要
标签: xcode swift ios8 boolean custom-keyboard