2012-02-08 142 views
1

從tableview到另一個table view(使用Xcode 4.2和iOS 5)。Tableview跨越另一個tableview和自定義表格單元格不能顯示

FirstPage.h

#import "FavoritesController.h" 

#import "Profiles.h" 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    FavoritesController * favoriteview = [[FavoritesController alloc] init]; 
    [favoriteview setTitle:@"Favorites"]; 

    NSMutableArray * profiles = [[NSMutableArray alloc]init ]; 
    profiles = [NSMutableArray arrayWithCapacity:20]; 

    Profiles * profile = [[Profiles alloc]init]; 
    profile.profile_name = @"Woot"; 
    profile.biz_type_desc = @"Woot 1"; 
    profile.profile_address = @"123, woot"; 
    profile.profile_email = @"[email protected]"; 
    [profiles addObject:profile]; 
    profile=[[Profiles alloc]init]; 
    profile.profile_name = @"Jin-Aurora"; 
    profile.biz_type_desc = @"Software"; 
    profile.profile_address = @"682A"; 
    profile.profile_email = @"[email protected]"; 
    [profiles addObject:profile]; 

    [self.navigationController pushViewController:favoriteview animated:YES]; 
    favoriteview.profilelist = profiles; 
} 

FavoriesController.h

@interface FavoritesController : UITableViewController 

@property(nonatomic,strong)NSMutableArray * profilelist; 

@end 

FavoriteController.m

#import "FavoritesController.h" 
#import "Profiles.h" 
#import "ProfileCell.h" 

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [self.profilelist count]; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"ProfileCell"; 

    ProfileCell *cell = (ProfileCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    Profiles * profile = [self.profilelist objectAtIndex:indexPath.row]; 

    cell.nameLabel.text = profile.profile_name; 
    cell.biztypeLabel.text = profile.biz_type_desc; 

    // Configure the cell... 

    return cell; 
} 

故事板表視圖

這是我

2012-02-08 22錯誤:28:37.719測試[4668:F803]終止應用程序由於 未捕獲的異常「NSInternalInconsistencyException ',原因: 'UITableView dataSource必須從 返回一個單元格tableView:cellForRowAtIndexPath:'

回答

0

我不太清楚是什麼你試圖在這裏做:

NSMutableArray * profiles = [[NSMutableArray alloc]init ]; 
profiles = [NSMutableArray arrayWithCapacity:20]; 

第一行創建一個新的可變數組稱爲配置文件。第二行創建一個容量爲20的自動發佈的可變數組,並將其分配給配置文件。所以你基本上覆蓋了你在第一行創建的數組。你可以說

NSMutableArray *profiles = [[NSMutableArray alloc] initWithCapacity:20]; 

NSMutableArray *profiles = [NSMutableArray arrayWithCapacity:20]; 

你崩潰的原因,如@ wattson12提到的是,你是出隊尚未創造了一個小區。你總是想嘗試去出隊,但如果一個不存在,你需要創建一個。再次,@ wattson12已經爲該任務提供了必要的代碼。

+0

嗨jmstone,我的代碼是這樣的。ProfileCell * cell =(ProfileCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell == nil){cell = [[ProfileCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];} ( – 2012-02-09 01:48:20

+0

如果你沒有得到任何單元格,在該方法中設置一個斷點,看它是否被擊中,否則,通常的罪魁禍首是你的數據源說該部分中沒有任何行(請參閱numberOfRowsInSection方法返回) – jmstone617 2012-02-09 02:28:51

+0

嗨jmstone,它返回我tableViewCellStyleDefault由於我把initWithStyle,我設置cell.textLabel.text = profile.profile _名稱。它能夠顯示。但我想要顯示自定義表格單元:(我應該爲InitWithStyle放置自定義表格視圖單元格? – 2012-02-09 03:29:10

2

你的cellForRowAtIndexPath方法嘗試出隊可重複使用的電池,但犯規創建它,如果沒有找到它(如果沒有可重複使用的細胞將發生)

ProfileCell *cell = (ProfileCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (!cell) 
    cell = [[[ProfileCell alloc] initWithStyle:style reusueIdentifier:CellIdenfitier] autorelease]; 
+0

嗨瓦特森,我的代碼是這樣的。ProfileCell * cell =(ProfileCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell == nil){cellCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; }但沒有顯示在桌子上,順便說一下你如何定義樣式? – 2012-02-09 01:29:59

+0

看起來不錯,檢查以確保該方法被調用,也許[self.profileList計數]返回0.風格是在[UITableView]中定義的(http://www.google.co.uk/url?sa = T&RCT = J&q = UITableView的&源=幅和CD = 1&VED = 0CC8QFjAA&URL = HTTP%3A%2F%2Fdeveloper.apple.com%2Flibrary%2FIOs%2Fdocumentation%2FUIKit%2FReference%2FUITableView_Class%2FReference%2FReference.html&EI = CJUzT-HfD8HH0QW1-7CyAg&USG = AFQjCNFNYcfigQMvMDGR -pLVt9t5jFVlow)docs – wattson12 2012-02-09 09:42:47

+0

hi wattson,我把UITableCellStyleDefault,它顯示我默認表格單元格。我錯過了一些讓自定義表格單元無法顯示的東西。任何方式可以幫助? :( – 2012-02-09 11:29:16