1

私はこれにかなり慣れていませんが、私がやろうとしていることは理にかなっていると思います。縦に表示される xib と横に表示される xib があります。どちらのビューも似ていますが、いくつかの違いがあります。ボタン、ラベル、テキストフィールドの一部は同じです。

方向が変更されたときに一方を表示し、もう一方を非表示にすることができます-それは問題ではありません.

基本的には、一般的なボタン クリックの応答やテキストの変更をすべて処理できる 1 つの場所を探しています。ユーザーが縦向きモードでテキストを入力するかボタンを選択すると、横向きモードに変わり、対応するボタンとテキストが更新されます。

インターフェイスビルダーに NSObject を追加して、ボタンとテキストフィールドのアウトレットとアクションを持つ新しいクラスに割り当てようとしましたが、ボタンを操作すると、xcode で「認識されないセレクターがインスタンスに送信されました」というエラーが発生します。

どんな助けでも素晴らしいでしょう。

ベスト、ウォード

4

2 に答える 2

6

Interface Builder で追加したオブジェクトは、XIB のロード時にインスタンス化されます。複数の XIB で同じオブジェクトを持つことはできません。

複数の XIB を接続するために使用するのは、各 XIB に表示される「ファイルの所有者」オブジェクトです。を使用して XIB をロードする[NSBundle loadNibNamed:@"myXIB" owner:self]と、所有者オブジェクトとして渡すものは、ロードされた XIB のファイルの所有者として終了し、Cocoa はその中にある IBOutlets と IBActions を接続します (ファイルの所有者オブジェクトの適切なクラスを設定してください) Interface Builder で)。

したがって、横向きビューのコントローラー オブジェクトを縦向きビュー XIB の所有者にし、そのコントローラーにすべての IBAction を配置して、両方の XIB からアクセスできるようにすることができます (一方のコントローラーを介して、もう一方のファイルの所有者を介して)。 .

于 2009-12-19T20:11:29.107 に答える
1

xibはテンプレートではなく、凍結乾燥されたオブジェクトであることを忘れないでください。一方のボタンは、もう一方のボタンとは接続されていません。

于 2009-12-19T19:58:45.360 に答える