2011-09-18 3 views
0

보기에서보기 기반 응용 프로그램과보기에 UITableview가 있습니다. 테이블 뷰를 클릭 할 때 dataSource, delegate 및 tableView를 "File 's Owner"로 설정합니다. 파일 소유자를 클릭합니다. TableView를 테이블 뷰로 설정하고, 뷰를보고, 테이블 뷰를 데이터 소스로, 테이블 뷰를 위임합니다. 아울렛. 나는 다음과 같은 오류를 얻을 시뮬레이터에 대한 응용 프로그램을 실행할 때보기 기반 응용 프로그램 내 UItableview

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


- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)videoView { 

    return 1; 

} 

// Customize the number of rows in the table view. 

- (NSInteger)videoView:(UITableView *)videoView numberOfRowsInSection:(NSInteger)section { 

    return 0; 
} 

// Customize the appearance of table view cells. 

- (UITableViewCell *)videoView:(UITableView *)videoView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [videoView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 

     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 

    } 

    // Set up the cell... 
    return cell; 

} 


- (void)tableView:(UITableView *)videoView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

} 


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

는 "numberOfRowsInSection :있는 tableView을] : 인식 할 수없는 선택기 인스턴스에 전송 0x6029710 "

은 내가 tableviews 다른 구현시 필요한 느낌을 얻을 탐색 기반 응용 프로그램이 아닌보기 기반 응용 프로그램에 사용됩니다. 누군가가 나를 올바르게 안내하기 위해해야 ​​할 일을 안내 할 수 있다면 매우 감사 할 것입니다. 감사합니다.

답변

0

대리자 구현의 경우 tableView를 videoView로 변경할 수 없습니다. 다음과 같아야합니다 :

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    return 0; 
} 

다른 cellForRowAtIndexPath도 수정해야합니다.

+0

맞았습니다. 문제가 해결되었습니다. – UnlimitedMeals

+0

그레이트 - 체크 표시로 가장 좋아하는 답을 표시하십시오 :) –

2

사용자가보기 기반 응용 프로그램이든 탐색 기반 응용 프로그램이든 구현이 동일합니다. 이 오류 메시지는 테이블 뷰가 데이터 소스에 tableView:numberOfRowsInSection:을 호출하려고했지만 데이터 소스가 해당 이름의 메서드를 구현하지 못했다는 것을 알려줍니다. 물론 샘플 코드를 보면 tableView:numberOfRowsInSection: 대신 videoView:numberOfRowsInSection:이라는 메서드를 구현해야합니다.

+0

고맙습니다 ...문제가있는 것 같았다. – UnlimitedMeals

0

내가 테이블보기에 인 dataSource 위임하고있는 tableView에 "파일의 소유자"그때 내가 테이블보기에 있는 tableView 설정 파일 소유자에 클릭있는 tableview에 클릭,보기보기 위해, 데이터 소스를 설정하고 아웃렛의 테이블보기에 위임합니다.

여기서 한 것을 이해하기가 어렵습니다. 테이블의 데이터 소스를 테이블 뷰 자체로 설정 했습니까?

나는 다음과 같은 오류 얻을 시뮬레이터의 응용 프로그램 실행 "있는 tableView : numberOfRowsInSection을 :]를 : 인식 할 수없는 선택기 예를 0x6029710로 전송"

주소 0x6029710에서 어떤 목적인가? 분명히 테이블의 데이터 소스로 설정 한 객체이지만 UITableViewDataSource 프로토콜을 구현하지는 않습니다.

은 내가 탐색이 응용 프로그램을 기반으로하기보다는보기 기반 응용 프로그램에서 사용할 때 tableviews 다른 구현 을 필요로하는 느낌을 얻을.

"보기 기반 응용 프로그램"과 "탐색 기반 응용 프로그램"은 실제로 차이가 없습니다. "보기 기반"및 "탐색 기반"프로젝트 템플릿이 있지만 앱 시작 지점이 두 가지입니다. UITableView 당신이 사용하는 상관 없어.

관련 문제