デフォルトのタブ コントローラー プロジェクトを使用してプロジェクトを作成しました。インターフェイス ビルダーを使用して .xib ファイルを編集し、画像とボタンを追加しています。それらをインターフェイス ビルダーの FirstViewController オブジェクトに接続します (これを作成し、そのクラスをコード ファイルと同じに設定します)。IBoutlets
と を使用してすべてを接続しましたIBActions
。
すべてが正常に機能していましたが、インターフェイス ビルダーでいくつかの変更を行い ( を追加UILabel
)、クリックすると実行されるメソッド (デバッガーで実行) に、ビュー コントローラーにサブビューを追加する行が追加されました。実行されなかったかのように動作します。メソッド (およびコードが実行されます) はエラーなしで実行されますが (デバッガーごと)、ビューは単に追加されていません。これは、インターフェイスビルダーを介して変更を加えた後に発生しました。
ここで、適切なタブをクリックして にドラッグし、ボタンを「Selected First View Controller」に接続IBOutlet
するとUILabel
、そのラベルには複数の参照アウトレットができます。ここで、ボタンに対して同じことを行うと、メソッド (the IBAction
) が 2 回実行されますが、実際にはサブビューが追加されて表示されます。しかし、私のIBAction
(ボタン)メソッドが何かを格納するプロパティにアクセスするため、メモリアクセスエラーが発生します。これは、First View Controllerで何らかの方法でメモリを作成することに関係していると思いますが、Selected First View Controllerでそれにアクセスしようとしていますか? それが意味があるとしたら?
なぜこれが起こっているのか、なぜボタンだけが突然機能しなくなったのか、私にはわかりません。私はこの問題をできる限り説明しようとしましたが、ややこしいです。しかし、誰かがヒントやアイデアを持っている場合は、この問題とその解決方法についてどう思うか聞いてみたい.