ViewController1()
Aufruf erstellt eine ViewController1
Instanz, anstatt zu arbeiten mit die ViewController1
Instanz, die bereits instanziiert wurde.
Eigenschaften zuzugreifen (in diesem Fall die Taste) von ViewController1
von ViewController2
Sie eine Referenz auf diese Schaltfläche ViewController1
-ViewController2
passieren müssen und die Eigenschaften durch diesen Verweis ändern.
Sie müssen die Referenz in Ihrer prepare(for segue)
Funktion in ViewController1
setzen.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "mySegue {
let nextVC = segue.destination as! ViewController2
nextVC.button = sender as! UIButton
}
}
Sie müssen auch die Segue auf manuell einzustellen und nennen es in ViewController1
von self.performSegue(withIdentifier: "mySegue", sender: self.button)
Sie müssen die Eigenschaft in ViewController2
und darauf zuzugreifen wie diese erstellen:
class ViewController2 {
var button:UIButton?
func showButtonOnVC1(){
guard let button = self.button else { return }
button.isHidden = false
}
}
Sie müssen habe irgendwie einen Verweis auf den Button oder einen Verweis auf ViewController1. Es hängt davon ab, wie Sie Ihren Code eingerichtet haben. Welche Beziehung hat ViewController1 zu ViewController2? Erstellen eines neuen 'ViewController1' mit' ViewController1() 'bedeutet, dass Sie zwei' ViewController1's haben, so dass das Ändern des Buttons auf einen keinen Effekt auf das Original 'ViewController1' hat. –