MVCの概念を理解しています。少なくとも私はそうすることを望んでいますが、私が最近遭遇した特定の状況があり、私は実際にはわからないと思います。
問題: 既存のボタンに適用すると、そのボタンのタイトルを編集する機能を追加するクラスを作成しようとしています。これは、UITextFieldを動的に生成することで実現され、UITextFieldにはボタンの新しい名前が入力されます。CustomAnimationというクラスにUITextFieldを追加し、次の方法で初期化するロジックを保持しています。
CustomAnimation *yar = [[CustomAnimation alloc] initWithButton:customButton];
私が遭遇する問題は、CustomAnimationなどのカスタムクラスからUIButtonを動的に作成し、それにターゲット/アクションを割り当てようとしている場合です。UIButtonは実際にはCustomAnimationクラスからViewController内で生成されるため、前者は親ViewControllerへのポインターを取得し、それをターゲットとして設定する必要があります。
[classButton addTarget:viewController action:@selector(dostuff:) forControlEvents:UIControlEventTouchUpInside];
1つを除いて、すべてが良好です。dostuffメソッドは、そのボタンに表示されるようにViewController内に存在する必要があり、ここではすべてがハックに変わります。
コントローラではなくクラス内から一時的なUI要素を生成する場合の正しいアプローチは何ですか?
ありがとうございました