2011-10-04 3 views
0

iPad 용 내 응용 프로그램에서 두 xib 파일을 단일보기로 구현하고 싶습니다. 분할보기처럼 보이지만 분할보기를 사용하고 싶지는 않습니다. 이것이 어떻게 행해질 수 있는지. 대부분의 경우단일보기에서 2 xib 구현

답변

0
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"FooView" 
              owner:self options:nil]; 
[self.view addSubview:[array objectAtIndex:0]]; 

당신은 아마 XIB에서 첫 번째 (만?) 최상위 개체를 할 것입니다,하지만 당신은 XIB에서 참조 다른 것을 원하는 것 경우가있을 수 있습니다.

이 고전적인 예는 우리가 UITableViewCells를로드하는 방식입니다. 여기서 약간의 차이점은 콘센트를 설치하고 사용하고 XIB의 첫 번째 항목을 콘센트에 곧바로 넣는 것입니다.

[[[NSBundle mainBundle] loadNibNamed:@"FubarView" owner:self options: nil] objectAtIndex:0]; 
[self.view addSubview:self.fubarViewOutlet]; 

부모보기에 추가 한 후에는 크기와 위치를 지정하기 위해 프레임을 설정하기 만하면됩니다. 콘센트를 사용하거나 배열의 항목을 적절한 클래스로 캐스팅하고 다른보기와 같이 사용하십시오.

수정 : 귀하의 의견 요청, 나는 이런 식으로 쓸 것입니다.

- (void)tableView:(UITableView *)tableViewTemp didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.row==0){ 
    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"CNBViewController" 
             owner:self options:nil]; 
    self.selectedRowView = [array objectAtIndex:0]; // assumes a class variable selectedRowView 
    [self.view selectedRowView]; 
    // newView.frame = CGRectMake(........); 
    } 
} 
+0

이 코드를 시도했지만이 앱에서 어떻게 설정해야하는지 모릅니다. 저 좀 도와 주 시겠어요? ipad 화면의 전반부에서 테이블보기와 그 didselectObjectAtIndex가 필요합니다. 0 다음 번에 상세보기를 표시하고 싶습니다. –

+0

이 경우 UIViewController를 만들 때 XIB (UIViewController를 만들 때 상자를 체크)로 UIViewController를 만드는 것이 좋습니다. 그런 다음 XIB에 들어가서 화면 절반을 차지하는 테이블을 만듭니다. 거기에서 UITableView 대리인/데이터 소스를 추가하십시오. didSelectRowAtIndexPath : 두 번째 XIB를로드하는 코드를 삽입하십시오. addSubview : 두 번째 XIB에서 새로로드 된보기를 기본 XIB에 추가합니다. 크기가 0,0 일 수 있으므로 새 XIB의 프레임을 설정해야합니다 (볼 수 없으므로) – DBD

+0

이것은 사용한 코드이지만 완전히 다른 페이지로 이동합니다. - (무효)있는 tableView : (jQuery과 *) tableViewTemp didSelectRowAtIndexPath : (NSIndexPath *) indexPath { 경우 (indexPath.row == 0) { self.title = "새로 만들기 브로셔"@; CNBViewController * xib1 = [[CNBViewController alloc] initWithNibName : @ "CNBViewController"번들 : nil]; //[self.view removeFromSuperview]; [self.navigationController pushViewController : xib1 animated : YES]; [xib1 release]; } 같은 페이지에서 다른 xib를로드 할 수있는 코드를 도와 주시겠습니까? –