初めての iPhone アプリケーションを作成していて、コードに未知のバグが見つかりました。コードは完全に正常に動作しますが、作成したカスタム UIButton をタップして次のビューをロードするときに問題が発生します。次のView Controllerにロードされる情報を処理するために呼び出されるbuttonPressed IBActionが必要ですが、関数呼び出しの順序が間違っています。5 つの異なる buttonPressed 関数があり、5 つのうち 3 つが正しく機能しています。ストーリーボードを介してまったく同じ方法でそれらを実装し、機能しないものを再作成しようとしたことに注意してください。コードを投稿しますが、コードは基本的な if/else ステートメントです。5つの方法のうち3つが機能し、他の2つが機能しない理由がわかりません。どんな助けでも大歓迎です。
**これは、作業中の 3 の望ましい順序です。
viewDidLoad -> メイン画面を読み込みます (初期ビュー コントローラー AKA ROOT、メイン画面には、カテゴリを選択するための 5 つの UIButtons があり、ボタンをタップして新しいビュー コントローラーに読み込みます)
categoryButtonPressed -> カウンターを設定します (新しいビュー コントローラーに続きます)
viewDidLoad -> 画面をロードして検索を絞り込む
(これで、タップするカスタム ボタンが 10 個以上になりました。それぞれが buttonPressed IBAction 関数を通じて処理され、ボタンがタップされて関数が呼び出されると、新しいビューが読み込まれます)
buttonPressed -> カウンターを設定します (新しいビュー コントローラーに続きます)
viewDidLoad -> 正しい情報を読み込みます
これは、非稼働 2 の順序です。
viewDidLoad -> メイン画面を読み込みます (初期ビュー コントローラー AKA ROOT) (メイン画面には、カテゴリを選択するための 5 つの UIButton があり、ボタンをタップして新しいビュー コントローラーに読み込みます)
categoryButtonPressed -> カウンターを設定します (新しいビュー コントローラーに続きます)
viewDidLoad -> 画面をロードして検索を絞り込みます (これで、タップするカスタム ボタンが 10 個以上になり、それぞれが buttonPressed IBAction 関数によって処理され、ボタンがタップされて関数が呼び出されると、新しいビューが読み込まれます)
viewDidLoad -> 空白の情報を読み込みます (空白の画面)
buttonPressed -> カウンターを設定しますが、ビューが既に空白でロードされているため遅すぎます
感想?**
以下は、categoryButtonPressed の例です。
-(IBAction)categoryButtonPressed:(id)送信者
{
if([sender tag] == 1)
counter = 1;
else if([sender tag] == 2)
counter = 2;
.
.
.
}
注: 特定のアイテムをロードするために、各カスタム ボタンにタグを付けています。この関数は、別の関数が特定のファイルをロードできるようにカウンターを設定するだけです。