ibactionはサブビューで呼び出されません
質問
ボタンをクリックした後、ユーザーが映画を表示できるシンプルなアプリを作成しています。最初に表示される画面は、2つのボタンを備えたメインメニューです。そのうちの1人は、ユーザーをサブビューに送信します。これをIBACTIONメソッドでコーディングしました。
ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];
[self.view addSubview:[nextView view]];
[nextView release];
この部分は、サブビューに前のビューの下部に20 pxバーが表示されていることを除いて、問題ありません。私は周りを見回しましたが、どちらのソリューションもありませんでした これです 私のために働きなさい。これは主な問題でさえありません。サブビューでは、ボタンをクリックするたびにアプリが爆発します。 IBACTIONメソッドは、メソッド内で行を実行する前に破損します。ここで、Goback Ibactionメソッドでは、サブビューを却下してメインメニューに戻ろうとしています。
[self.view removeFromSuperview];
私の接続は私のXIBファイルで正しいものであり、すべてが整っているようです。ボタンは実行されていません。サブビューを追加することに関係しているのか、それとも何が必要かはわかりません。 GoogleとこのWebサイトで多くの検索を行ってきましたが、まだ解決策が見つかりません。
これが私が得ているエラーの例です:
Terminating app due to uncaught exception 'NSInvalidArgumentException, reason: '-[__NSCFType goBack:]: unrecognized selector sent to instance 0x5640b70'
うまくいけば、皆さんが私を助けることができます、これは本当に非常にイライラします。私はすべてを試したような気がします。御時間ありがとうございます。これ以上の情報を提供する必要がある場合はお知らせください。再度、感謝します。
解決
ViewConroller *nextView = [[ViewController alloc] initWithNibName:@"NextMenu" bundle nil];
ビューコントローラーが作成されます。
[self.view addSubview:[nextView view]];
self.view
の付加価値 nextView.view
サブビューで保持しているので(nbそれは保持しました next.view
価値はありません nextView
自体)
[nextView release];
nextView
リリースされ、すぐに契約されます(誰にも保持されていないため)
ボタンは、契約に合わせたオブジェクトへのメッセージを送信しようとしています - >動作は未定義です。 goBack:
意味。
そのため、独自のナビゲーションでホイールを発明してはなりません(特にこれに慣れていない場合)。使用する UINavigationController
代わりは。