我目前正试图使if
语句仅在用户按下UIButton时起作用,然后该UIButton将运行self.eslTopics.isHidden = false
以显示我的UIPickerView。编写if
语句的正确语法是什么?我目前有一个名为“ showwheel”的按钮,用于将pickerview UI从hidden = true更改为false。
if showWheel{
self.eslTopics.isHidden = false
}
Xcode尝试引发错误:
可选类型“ UIButton!”不能用作布尔值;测试'!= nil'代替,将'showWheel'替换为'(showWheel!= nil)'
这也没有意义或行不通。
答案 0 :(得分:2)
答案 1 :(得分:1)
您必须将IBAction
与按钮按下关联,然后在该方法中添加代码。
@IBAction func toggleVisibility(_ sender: UIButton) {
self.eslTopics.isHidden = false
}
答案 2 :(得分:1)
如果变量showWheel
是类型UIButton!
的实例变量(隐式展开的可选UIButton
),则您的代码不合法。
在C / C ++ / Objective-C中,说
是合法的if showWheel
编译器将其表示为“如果showWheel为true”,则true等效于!0
/ !nil
。
在Swift中这是不合法的。在Swift中,您必须明确检查nil是否为可选内容,因此您的代码将需要读取
if showWheel != nil
请注意,您应该不将条件放在括号中的Swift中。不要像在C / C ++ / Objective-C / Java中那样使用if (showWheel != nil)
。
答案 3 :(得分:-1)
错误提到:
可选类型“ UIButton!”不能用作布尔值;测试'!= nil”代替,将'showWheel'替换为'(showWheel!= nil)'
showWheel
是UIButton的类型,表示如果您输入:
if showWheel { }
这意味着它检查showWheel
是否为 nil ,它与以下内容相同:
if showWheel != nil { }
似乎与您要的内容无关,我们已经假设showWheel
不为零。
在IBAction
的{{1}}中,您应该做的是直接调用showWheel
,而无需任何if语句。
如果您不熟悉向UIButton添加操作,则可以检查:
How do I add a IBAction to a button programmatically in Swift 4?(以编程方式)。
Mahendra GP's答案(通过情节提要)。