私はストーリーボードinstantiateViewControllerWithIdentifier:
を使用していますが、私が配線したIBOutlets
のすべてがまだゼロであることに気付いています。しかし、IBActions
私は仕事をしています。ビューとコントローラはリンクされています(つまり、controller.viewはゼロではありません)。ビューを表示すると、私は期待しているものを表示します。ストーリーボードinstantiateViewControllerWithIdentifierがIBOutletsを設定していません
私には何が欠けていますか?私は私のストーリーボードで定義されたビューコントローラを持っている
- :
は、ここに私のセットアップです。
instantiateViewControllerWithIdentifier:
- View Controller(First Responderの下)をクリックしてビューの所有者を設定し、アイデンティティ・インスペクタの下にカスタム・クラスを設定しました。私はビューを配線したいクラスと同じ名前です。
- 次に、私はアシスタントエディタを開き、コントロールはUI要素をドラッグして
IBOutlets
とIBActions
を作成しました。- (void)setValue:(id)value forKeyPath:(NSString *)keyPath { [super setValue:value forKeyPath:keyPath]; } - (void)setValue:(id)value forKey:(NSString *)key { [super setValue:value forKeyPath:key]; }
を、スーパーへの二つの呼び出しにブレークポイントを置く:
私は自分のペン先にビューを壊そうとしましたが、私は同じ問題を抱えています。 initWithNibName:bundle:IBでctrl-click-dragで定義されていても、IBOutletを設定していないようです。 – BlueFish
回避策として、[[NSBundle mainBundle] loadNibNamed:@ "myNib" owner:controller options:nil]を使用しています。これはペン先をロードし、IBOutletsをコントローラーの値に割り当てます。しかし、同じことをしているようなコントローラのメソッドがある場合、これは間違っているようです。 – BlueFish
あなたの設定とちょっと混乱していますが、なぜあなたはビューのオーナーを設定していますか?あなたのibのアウトレットはストーリーボードのビューコントロールに置かれますか?このビューコントローラーをインスタンス化するときに、カスタムヘッダーと実装に一致するようにこのVCのタイプを設定すると、アウトレットが機能するはずです。 – Pochi