調用ViewController1()
按鈕的可視性產生的,而不是參與工作的ViewController1
實例已經實例化的ViewController1
實例。
要從ViewController2
訪問屬性(在這種情況下,按鈕)的ViewController1
,必須從ViewController1
傳遞給按鈕的引用到ViewController2
並通過該參考更改屬性。
您需要在ViewController1
的prepare(for segue)
函數中設置參考。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "mySegue {
let nextVC = segue.destination as! ViewController2
nextVC.button = sender as! UIButton
}
}
你還需要將SEGUE設置爲手動,並通過self.performSegue(withIdentifier: "mySegue", sender: self.button)
叫它ViewController1
您需要ViewController2
創建屬性和訪問它是這樣的:
class ViewController2 {
var button:UIButton?
func showButtonOnVC1(){
guard let button = self.button else { return }
button.isHidden = false
}
}
您需要以某種方式具有對按鈕的引用,或對ViewController1的引用。這取決於您如何設置代碼。 ViewController1對ViewController2有什麼關係? 用'ViewController1()'創建一個新的'ViewController1'意味着你有兩個'ViewController1's,所以改變一個按鈕對原來的'ViewController1'沒有影響。 –