0

私はiPhoneアプリケーションに取り組んでいます。ストーリーボードを使用しています。

テーブル ビューを表示するウィンドウの下部にあるボタン バーの可視性を処理するために、1 つのオブジェクトを NavController にアタッチしたいと考えました。

独自の UINavigationDelegate を作成しました。MyNavigationControllerDelegate.

UIBuilder で NSObject を作成し、そのクラス MyNavigationControllerDelegate を変更しました。そして、それを UINavigationController のデリゲートとしてアタッチしました。

ここに画像の説明を入力

何らかの理由で MyNavigationControllerDelegate の割り当てが解除されています。デリゲートであることは、それへの参照を保持し、割り当て解除を防ぐのに十分であると考えていましたが、そうではないようです。

割り当てが解除されないようにする方法について何か提案はありますか? ビューが読み込まれるたびにデリゲートとしてリセットする必要がありますか?

4

1 に答える 1

2

delegateUINavigationControllerのプロパティはorassignではなくとして宣言されています(こちらを参照)。デリゲートは通常、 または のいずれかで宣言されます。つまり、プロパティを割り当てても、デリゲートの参照カウントが増加することはなく、それへの強い参照を保持するには別のオブジェクトが必要です (おそらく RootViewController)。retainstrongweakassignUINavigationController

于 2012-06-13T14:24:09.637 に答える