2016-03-28 41 views
-1

好吧,讓我們假設下面創建的按鈕變灰,禁用用戶交互。啓用用戶與按鈕的交互SWIFT

如何從其他地方啓用按鈕。

我知道如何禁用按鈕函數內的按鈕,sender.enabled = false,但我不想從那裏禁用它。

我想重新啓用按鈕功能外部的用戶交互。

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    @IBAction func loadButton(sender: UIButton) { 
     //i wan to enable interaction of this button via override func and   NSUserDefaults 
    } 
} 

回答

1

在iOS和OS X開發中,您有所謂的outlets,它們是指向UI元素的變量。你可以閱讀更多關於他們here

要聲明一個出口,你前綴@IBOutlet你的變量,像這樣:

@IBOutlet weak var button: UIButton!

,然後你需要你的插座連接到該按鈕在你xib文件。這可以通過多種方式來實現,但如果你已經宣佈像上面的變量,你可以:

  1. 去你的故事板
  2. 在文檔大綱按住控制鈕
  3. 同時按住控制按鈕,你從你的files ownerViewControllerUIButton拖你想連接到
  4. 選擇出口,你想連接到(button在這種情況下)

如圖所示

One way to connect an outlet

一旦到位,您可以自由使用在你的代碼啓用按鈕(以及更多),例如:

func viewDidLoad() { 
    super.viewDidLoad() 
    button.enabled = false 
} 

你可以閱讀更多關於IBOutlets here

這裏是another way to connect outlets(這是我比較喜歡實際連接插座,您可以定義並連接一氣呵成)

希望有幫助

+0

非常感謝!這解決了我的問題 –

+0

不客氣。當你從iOS或OS C開發出發時,Outlets有點奇怪,但是一旦你學習了控制拖拽的東西,它就是連接你的UI和你的代碼的簡單方法。很高興你解決了 – pbodsk