2011-09-18 46 views
0

我在視圖中有一個基於視圖的應用程序和一個UITableview。 當我點擊桌面視圖 ,然後單擊文件所有者,我將數據源,委託和tableView設置爲「文件的所有者」,我將tableView設置爲TableView,查看View,數據源到TableView,並委託給Table中的Table視圖網點。基於視圖的應用程序中的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); 
} 

當我運行模擬器我得到以下錯誤 應用「的tableView:numberOfRowsInSection:]:無法識別的選擇發送到實例0x6029710 」

我得到tableviews需要不同的實現時的感覺用於基於視圖的應用程序而不是基於導航的應用程序。如果有人能指導我需要做些什麼才能正確顯示,我會非常感激。謝謝。

回答

0

對於委託實現,您無法將tableView更改爲videoView。應該是:

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

    return 0; 
} 

您需要修復其他cellForRowAtIndexPath以及!

+0

你是對的,它解決了這個問題。 – UnlimitedMeals

+0

太好了 - 請選中你最喜歡的答案並用對號標記:) –

2

無論您處於基於視圖還是基於導航的應用程序中,實現都是相同的。這個錯誤消息告訴你的是,你的表視圖試圖在其數據源上調用tableView:numberOfRowsInSection:,但是數據源沒有實現具有該名稱的方法。當然,看看你的示例代碼,你實現了一個名爲videoView:numberOfRowsInSection:而不是tableView:numberOfRowsInSection:的方法。

+0

謝謝...這似乎是問題所在 – UnlimitedMeals

0

我設置DataSource,委託和的tableView「文件的所有者」當我 點擊的tableview然後在文件的所有者我的 的tableView設置爲表視圖點擊,查看查看,數據源,以表視圖和 委託給網點中的表格視圖。

很難理解你在這裏做了什麼。您將表格的數據源設置爲表格視圖本身?

當我運行模擬器我得到以下錯誤 應用「的tableView:numberOfRowsInSection:]:無法識別的選擇發送到 實例0x6029710」

什麼對象是在地址0x6029710?它肯定是您設置爲表的數據源的對象,但它不會實現UITableViewDataSource協議。

我得到鑑於基於應用程序使用,而不是基於引導的 應用程序時tableviews需要不同的執行 的感覺。

「基於視圖的應用程序」和「基於導航的應用程序」真的沒有區別。有「基於視圖」和「基於導航」的項目模板,但這些只是您應用的兩個不同的起點。 UITableView不關心你使用哪一個。

相關問題