2012-11-03 5 views
1

이 게시 된 후 here에 게시 된 UIView를로드 할 때 XIB 파일에 정의 된보기를 현재 표시된보기로로드하려고했습니다. 기본적으로, 사용자가 버튼을 클릭 할 때 중간 뷰 (아래 스크린 샷 참조)를 다른 뷰로 대체합니다.XIB에서 UIView로 UIView

Layout of my ViewController

이 내가 중간 뷰에로드 할 단순이다 :

enter image description here

그리고 이것은의 ViewController의 소스 코드입니다

ViewController.h #import

내가 버튼을 클릭하면

ViewController.m # import를 "ViewController.h은"

@interface ViewController() 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
} 

- (IBAction)buttonClicked:(id)sender { 
NSLog(@"click..."); 
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"NewMiddleContent" owner:self options:nil]; 
UIView *nibView = [nibObjects objectAtIndex:0]; 
self.middleView= nibView; 
} 
@end 

, 아무 일도 일어나지 않는다, 즉 새로운보기가 표시되지 않습니다. 아무도 도와 줄 수 있니?

감사 기독교

답변

1

귀하의 뷰 컨트롤러는, 아마도, 세 개의 하위 뷰 (왼쪽, 중간, 오른쪽)가있는 view 속성이 많은. 컨트롤러에 middleView 속성을 설정하는 대신 기본보기의 하위보기 배열을 업데이트 (대체 할 배열을 제거하고 새보기를 삽입)하는 것이 좋습니다.

+0

고마워요! 한 가지 더 질문 : 내 질문에 대한 내 대답을 참조하십시오 (주석을 사용하지 않아서 미안하지만 일부 추가 코드를 게시하고 싶었습니다). – itsame69

2

필립, 정말 고마워!

- (IBAction)buttonClicked:(id)sender { 
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"NewMiddleContent" owner:self options:nil]; 
UIView *nibView = [nibObjects objectAtIndex:0]; 

nibView.frame = CGRectMake(261, 0, 532, 748); 
[[[self view] viewWithTag:2] removeFromSuperview]; 
[[self view] addSubview:nibView]; 
} 

이 당신이 의미 원하는인가, 즉이 "가장 좋은 방법"처럼 대신

- (IBAction)buttonClicked:(id)sender { 
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"NewMiddleContent" owner:self options:nil]; 
UIView *nibView = [nibObjects objectAtIndex:0]; 
self.middleView= nibView; 
} 

는 지금이 코드를 사용

?

안녕 기독교

+1

모든 세부 사항을 확인하지 않고서는, 제가 생각했던 아이디어입니다. 그 외관을 가진 iOS 앱을 본 적이 확실하지 않기 때문에 "우수 사례"에 대해 확신 할 수 없습니다. 나는 맥 애플 리케이션에서 매우 유사한 것을했다. 플레이 된 뷰는 플레이스 홀더 뷰로 대체된다. (다른 접근법, 복잡한 일이 생기면 자신 만의 컨테이너 ** 뷰 컨트롤러를 만드는 것입니다. 궁금한 점이 있으면 docs를 참조하십시오.) –

+0

감사합니다, Phillip! 내 컨테이너 뷰 컨트롤러를 구현하는 방법을 자세히 살펴볼 것이다. – itsame69

+0

사용자 지정 UIView 및 .xib 파일과 비슷한 작업을 수행하는 샘플 프로젝트를 만들었습니다. https://github.com/PaulSolt/CompositeXib –

관련 문제