2 つのビューがあり、2 つのビュー コントローラーを使用しました。メイン ビューから、2 番目のビューのボタンを特定のテキストで初期化したいと考えています。
2 番目のビューでボタンを押すと、そのボタン参照をグローバル UIButton に保存し、テキストを変更できます。
しかし、初めて、メイン ビューの 2 番目のビューのボタン テキストを特定のテキストで初期化するにはどうすればよいですか?
これを行うべきではありません。すべてのコントローラーが独自のビューを担当する必要があります。完全停止。
いつでも 2 番目のコントローラーにいくつかのプロパティを設定し、2 番目のビューが画面に表示されたときにそれを使用して、好きなように変更することができます。
どのようにこれを行ったのかわかりません。しかし、いくつかのコードを投稿すると役に立ちます。上記のコードが既に機能している場合、期待どおりに機能するには、次のコードが必要です。
2 つのビュー コントローラーとして ViewControllerA、ViewControllerB があるとします。XIB ファイルを作成するときに、ボタン内のテキストを確実に初期化できます。
しかし、私はあなたがこれをプログラムでやりたいと思っていると仮定しています。別のView Controllerのボタンにアクセスしたい場合は、
a. 他のView Controllerへのアクセス。b. 他のビュー コントローラーにアクセスしたら、そのビュー コントローラーの UIButton 変数にアクセスします。
したがって、ViewControllerA コードで次のことができます。
-(void)changeButtonTextOfVCB{
viewControllerB.button setTitle:@"MyTitle" forControlState...
}
上記のメソッドをトリガーするボタンをviewControllerAに配置できます。
そうは言っても、View Controllerを切り替えることさえできる場所で、すべてが機能しているかどうかはわかりません
FirstViewControllerでボタンを作成し、Title..ETCのようなボタンプロパティを変更したい場合は、SecondViewControllerでプロパティを作成する必要があります。
@property (nonatomic,assign) UIButton *button;
firstViewController を secondViewController にナビゲートするときは、ボタンオブジェクトを次のように渡すだけです
obj = [SecondViewController alloc]...]
obj.button = button;//(FirstViewController button object)