からボタンの視認性がViewController1()
を呼び出すと、代わりに作業のViewController1
インスタンスを作成し、変更することができますすでにインスタンス化されているViewController1
インスタンス。 ViewController2
からViewController1
の性質を(この場合はボタン)にアクセスするために
、あなたはViewController1
からViewController2
にそのボタンへの参照を渡すと、その参照を使用してプロパティを変更する必要があります。
prepare(for segue)
の参照をViewController1
に設定する必要があります。
あなたはまた、マニュアルにセグエを設定し、あなたが
ViewController2
でプロパティを作成し、このようにアクセスする必要が
self.performSegue(withIdentifier: "mySegue", sender: self.button)
によってViewController1
でそれを呼び出す必要が
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "mySegue {
let nextVC = segue.destination as! ViewController2
nextVC.button = sender as! UIButton
}
}
:
class ViewController2 {
var button:UIButton?
func showButtonOnVC1(){
guard let button = self.button else { return }
button.isHidden = false
}
}
あなたがする必要があります何らかの形でボタンへの参照、またはViewController1への参照を持っています。それはあなたのコードをどのようにセットアップしたかによって異なります。 ViewController1とViewController2の関係は何ですか? 'ViewController1()'を使って新しい 'ViewController1'を作成すると、2つの' ViewController1'があることを意味します。したがって、元の 'ViewController1'には影響しません。 –