正如@LAmasse所说,你想使用button.hidden = true
. button.hidden
被重命名为button.isHidden
在 Swift 3 中
您发布的代码没有意义。
if self.Status.text == "Closed"
{
Purchase().enable = false
}
什么是采购?从大写的名字来看,它似乎是一个类。如果是这样,则表达式Purchase()
可能会创建一个新实例Purchase
类,这没有任何意义。为什么要进行函数调用?如果那是创造一个新的Purchase
对象,那么该代码就没有意义了。 (您将在if
由于您没有对其进行强引用,因此该语句将在下一行中被丢弃。)
您想要为按钮设置 IBOutlet 并在 Interface Builder 中连接它。
该声明可能如下所示:
Class MyViewController: UIViewController
{
@IBOutlet weak var theButton: UIButton!
//The rest of your view controller's code goes here
}
如果插座连接到您的按钮,则代码行左侧应该有一个实心圆圈。它看起来像这样:
然后显示/隐藏按钮的代码可能如下所示:
func showQueryResults
{
var query3 = PFQuery(className:"Status_of_game")
query3.findObjectsInBackgroundWithBlock()
{
(namelist3: [AnyObject]!, error : NSError!) -> Void in
for list3 in namelist3
{
var output = list3["StatusType"] as String
self.Status.text = output
println(output)
if output == "Closed"
{
theButton.isHidden = false //changed to isHidden for Swift 3
}
}
}
}
我不清楚为什么您要循环查询查询的所有结果,并在任何结果的“状态类型”==“已关闭”时显示按钮。
最后,我对parse不是很熟悉。如果主线程上未调用 findObjectsInBackgroundWithBlock 方法的完成块,则必须更改该代码才能在主线程上更新 UI。
EDIT:
我了解到 Parse 在主线程上执行其完成处理程序,因此您无需担心来自 Parse 完成处理程序的 UI 调用。