0

私のメインアプリは、すべてのビューをレイアウトするためにストーリーボードを使用しています。次は... 派手なオーバーレイに適用したいいくつかのボタンを保持する xib ファイルもあります。これは、私がここで見つけたテクニックを使用してもうまく機能しています: http://www.stackoverflow.com/a/12574190/949538

Files Owner は、メインのビュー コントローラーに接続されています。メイン ビューのボタンから、この xib をうまく開くことができます。

問題は、この xib に配置したものに IBAction をアタッチしようとしたことにあります。警告もビルドエラーもありません。すべて問題ないようです。xib/view を開いてボタンの 1 つを押すまで、次のようになります。

2012-11-19 15:44:48.685 Frolfer[89367:c07] -[UIViewController closeStartPanel:]: unrecognized selector sent to instance 0x8352e90
2012-11-19 15:44:48.686 Frolfer[89367:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController closeStartPanel:]: unrecognized selector sent to instance 0x8352e90'

MainViewController.m

-(IBAction)closeStartPanel:(id)sender {
    NSLog(@"close start panel");
}

ここに画像の説明を入力

それは、私が忘れたり見逃したりするほど基本的なものでなければなりません。

何かご意見は?

PS 文字どおり、まだ多くのコードが書かれていませんが、もっと知りたいことがあれば教えてください。あなたが見たいものが何であるか正確にはわかりません...

前もって感謝します!!- 描いた

4

2 に答える 2

0

私はそれを考え出した!

なぜ以前にこれを試さなかったのかわかりませんが、今ではうまく機能しています。

通常、ストーリーボードにいるときは、[Touch Up Inside] ハンドルをボタンの上にドラッグして、ヘッダーで作成した使用可能な IBAction を表示します。xib ファイルでは、これはまったく発生していませんでした。前述のように、xib のファイル所有者のクラスを MainViewController に変更しました。

その後、「Touch Up Inside」を IB の画面上のボタンにドラッグしたときに、定義したすべての IBAction が期待どおりに表示されました。

ここに画像の説明を入力

しかし、そこからクラッシュが発生し始めました。

今朝、xib ファイルの MainViewController へのすべての関連付けを削除したところ、誤って「Touch Up Inside」ハンドルを First Responder にドラッグしてしまいました。私は First Responder であまり遊んでいないと思いますが、驚いたことに、すべての IBActions がそこにリストされていました。どういうわけか、私は彼らに会わないだろうと思っていました。

ここに画像の説明を入力

クリーンアップとコンパイル...ブームの後、それらは機能しました! 唯一の欠点 (それを呼びたい場合) は、コード ビューでは、定義された IBAction が IB のボタンに接続されており、私のように灰色のドットで埋められていることを示していないことです。ストーリーボードに直接ある他のボタンはそうです。

まあ、(今のところ)期待どおりに機能しているようですので、そのまま進めます。

:-) 素晴らしい感謝祭の週末をお過ごしください。- ドリュー

ここに画像の説明を入力 ここに画像の説明を入力

于 2012-11-21T14:48:32.237 に答える
0

closeStartPanel:そのために定義されたセレクターはありUIButtonますか?そのためのコードを投稿できますか?closeStartPanel例外は、そのためのセレクターを見つけることができないことUIButtonを明確に示していUIViewControllerます...

于 2012-11-20T03:07:27.953 に答える