2012-05-04 2 views
3

iOS 5 프로젝트가 거의 완료되었지만 어디서나 하나의보기가 누락되었습니다. 표준 NavigationBar 대신 사용할 수 있습니다. 스 와이프를 사용하여 탐색 계층에서 '뒤로'이동할 수 있으며 애니메이션으로 멋지게 움직입니다.iOS - 스토리 보드 전체에서 NIB의보기 사용 (디자인 및 애니메이션 로직 용)

코드로 레이아웃을하기가 어렵기 때문에 하위 뷰 등이 포함 된 뷰가있는 빈 IB 문서 (HeaderView.xib)를 만들었습니다. UIView 하위 클래스를 만들기 전에 애니메이션 코드를 사용했습니다.

- (void)loadAnimation {…} 

와 두 번째 (이 대리자입니다 : ("HRAnimationView")는 방법 (그리고 "사용자 정의 클래스"필드는 또한 콘센트에 파단 매여 XIB의 사찰에서의 이름을 썼다) - 완성 된 애니메이션 방법) :

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

... 이것은 모든 애니메이션 작업이 끝나기 전까지 계속 반복되고 있습니다. ...

스토리 보드에 정확히 같은 크기 (및 아울렛)의 서브 뷰가 있고 싶었습니다. 해당 컨트롤러의 viewDidLoad 메서드에있는 XIB를로드하십시오.

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 !! (또한 UIView의 *보기가 작동하지 않으며, 소유자 : self.headerView는)

은 ... 로그가 날 수 있습니다 :

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

...

문제가 무엇인가를? 컴파일 실패도 없습니다!

나는 그것을 얻지 못한다. 왜 내 경우에는 xib가 쓸모 없습니까?!

+0

KindOfClass가 UIView 대신 HRAnimationView를 확인하지 않아야합니다. – lnafziger

+0

음 ... Thx, 이것을 확인하겠습니다. 하지만 HRAnimationView UIView의 하위 클래스로 작동하지 않아야합니까? –

+0

그래야 겠지만 예상되는 동작을 얻는 데 올바른 클래스인지 확인하고 싶습니다. – lnafziger

답변

0

SOLVED를 해결해야 추가해보십시오!

새 ViewController를 만들고 "xib로 만들기"체크 박스를 열고 xib의 뷰를 삭제하고 이미 설정 한 뷰를 붙여 넣은 &을 복사하고 ViewController에서 애니메이션 코드를 viewDidLoad에 넣습니다.

그런 다음 각 스토리 보드의 ViewController의있는 viewDidLoad 메소드의 구멍 일을로드 :

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

(headerView 그렇게 모든 스토리 보드에서보기에 함께 IBOutlet, 즉 기본적으로 설치, 좋은 유일한 것입니다!XIB는 해당의 ViewController없이 쓸모가 같은

http://forums.macrumors.com/showthread.php?t=749544이 보이지만) .. 어떤 이상한 (수행해야합니다 Add subview using storyboard without external xib

  • 또는 :)

    1. 또 다른 가능성은있을 것이다. 하지만 답장을 보내 주셔서 감사합니다. 같은 문제가있는 사람이 지금이 누군가를 찾을 수 있기를 바랍니다.

  • 0

    NSArray * bundle = [[NSBundle mainBundle] loadNibNamed : @ "HeaderView"소유자 : 자체 옵션 : nil];

    위의 문 뒤에 ...이

    [self.headerView = [bundle objectAtIndex:0] 
    

    이 문제를

    +0

    이미 시도 :-( –

    관련 문제