2012-05-04 9 views
3

私はiOS 5プロジェクトをほぼ完了しましたが、どこにも欠けているビューがあります。これは標準のNavigationBarに代わるものです。スワイプを使ってナビゲーション階層で「戻る」ことができ、うまくアニメーション化されます。iOS - ストーリーボード(デザイン&アニメーションロジック用)で使用されるNIBのビュー

コードでレイアウトを行うのが難しいため、私はサブビューなどを含むビューを持っている空のIBドキュメント(HeaderView.xib)を作成しました。 私はアニメーションコードを持っていましたので、UIViewサブクラスを作成しました(「HRAnimationView」)(ともコンセントにサブビューをフックアップ、XIBの検査官「カスタムクラス」フィールドにそれの名前を書いた)メソッドで:これはデリゲートである

- (void)loadAnimation {…} 

2つ目(完成アニメーションの方法):

- (void)animationDidStop:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context {} 

...これはすべてのアニメーションの出来事が起こり、それが終わるまで何度も何度も繰り返し呼びかけている場所です...

ストーリーボードでは、私は正確に同じ寸法(およびそれ用のアウトレット)のサブビューを持っていました。

NSArray *bundle = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil]; 

HRAnimationView *view; 

for (id object in bundle) {   
    NSLog(@"%@",object); 
    if ([object isKindOfClass:[UIView class]]) 
     view = (HRAnimationView *)object; 
} 

self.headerView = view; 
[self.view setNeedsDisplay]; 
[view loadAnimation]; 

ただし、headerViewはEMTPYです(対応するコントローラのviewDidLoadメソッドのXIBをロードしてください)。 (また、UIViewの*ビューが働いていなかった、また所有者:self.headerView)

...ログはちょうど私に与える:

<HRAnimationView: 0x3f1890; frame = (0 0; 240 49); autoresize = RM+BM; layer = <CALayer: 0x3f18d0>> 

を...問題は

WHAT IS?コンパイルに失敗しました。

私はそれを得ることができません、なぜ私の場合はxibは無価値ですか?

+0

UIViewの代わりにHRAnimationViewをチェックしないでください。 – lnafziger

+0

Hmm .. Thx、これをチェックします。しかし、HRAnimationViewはUIViewのサブクラスなので、うまくいかないでしょうか? –

+0

それはすべきですが、期待される動作を得るには正しいクラスであることを確認したいと思います。 – lnafziger

答えて

0

を解決する必要があり、この

[self.headerView = [bundle objectAtIndex:0] 

を追加してみてください!

私は新しいViewControllerを作成し、 "create with xib"ボックスをチェックし、xibのビューを削除して既に設定されているビューを貼り付けた&をViewControllerに貼り付けました。私はviewDidLoadにアニメーションコードを入れました。

は、その後に各ストーリーボードのViewControllerののviewDidLoadメソッドで穴の事をロード:

UIViewController *ctrl = [[UIViewController alloc] initwithNibNamed:@"HeaderView"]; 
[self.headerView addSubview:ctrl.view] 

(headerViewはので、すべてのストーリーボード内のビューにIBOutletで、それは基本的にセットアップ、NICEへの唯一のものです!)

  1. 別の可能性は次のようになります。 Add subview using storyboard without external xib
  2. か:XIBが対応するのViewControllerなしで役に立たないものでなければなら(奇妙な...何でも)のようにhttp://forums.macrumors.com/showthread.php?t=749544

が見えます。 しかし、あなたの応答のおかげで、彼/彼女は同じ問題を抱えている場合、誰かが今これを見つけることができるように願っています!

0

にNSArray *バンドル= [[NSBundle mainBundle] loadNibNamed:@ "HeaderView" 所有者:自己オプション:nilを];上記の文の後

...これは問題解決しよう

+0

既に試しました:-( –

関連する問題