基本上,我有UITableView自定義單元佈局。我按照AppCoda.com上的教程(http://www.appcoda.com/customize-table-view-cells-for-uitableview/)瞭解如何製作它們。如何使tableview單元格爲靜態並仍然可以訪問?
現在,我創建了一個prepareForSegue
方法,它在輕敲UITableView中的單元格時打開集合視圖。由於這樣做我的UITableView單元格是空白的,沒有我分配給他們的信息。此外,UITableView中的所有單元顯示相同的數據。
如何創建這兩者之間的連接,使其處於完美狀態時,集合中的第一張圖片將用作表格單元格中的示例圖像,並且所有表格單元格都有單獨的數據?
FolderTableViewController.m
@implementation FoldersTableViewController
{
NSArray *folders;
}
@synthesize tableView;
- (void)viewDidLoad {
[super viewDidLoad];
Folder *folder1 = [Folder new];
folder1.name = @"Barcelona";
folder1.date = @"01/12/2014";
folder1.imageFile = @"city23.gif";
Folder *folder2 = [Folder new];
folder2.name = @"Florence";
folder2.date = @"02/12/2014";
folder2.imageFile = @"city24.gif";
Folder *folder3 = [Folder new];
folder3.name = @"Berlin";
folder3.date = @"03/12/2014";
folder3.imageFile = @"city25.gif";
Folder *folder4 = [Folder new];
folder4.name = @"Swansea";
folder4.date = @"04/12/2014";
folder4.imageFile = @"city26.gif";
Folder *folder5 = [Folder new];
folder5.name = @"Cardiff";
folder5.date = @"05/12/2014";
folder5.imageFile = @"city29.gif";
Folder *folder6 = [Folder new];
folder6.name = @"Pisa";
folder6.date = @"06/12/2014";
folder6.imageFile = @"city30.gif";
Folder *folder7 = [Folder new];
folder7.name = @"Lisbon";
folder7.date = @"07/12/2014";
folder7.imageFile = @"city31.gif";
Folder *folder8 = [Folder new];
folder8.name = @"Liverpool";
folder8.date = @"08/12/2014";
folder8.imageFile = @"city32.gif";
Folder *folder9 = [Folder new];
folder9.name = @"Mannheim";
folder9.date = @"09/12/2014";
folder9.imageFile = @"city33.gif";
folders = [NSArray arrayWithObjects:folder1, folder2, folder3, folder4, folder5, folder6, folder7, folder8, folder9, nil];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView == self.searchDisplayController.searchResultsTableView) {
return [searchResults count];
} else {
return [folders count];
}
// Return the number of rows in the section.
return [folders count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *foldersIdentifier = @"FolderCell";
FolderCellTableViewCell *cell = (FolderCellTableViewCell *) [tableView dequeueReusableCellWithIdentifier:foldersIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FolderCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
Folder *folder = [folders objectAtIndex:indexPath.row];
cell.nameLabel.text = folder.name;
cell.thumbnailImageView.image = [UIImage imageNamed:folder.imageFile];
cell.datumLabel.text = folder.date;
return cell;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showFolderCollection"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];}
}
FolderCollectionViewController.h
@property (strong, nonatomic) NSArray *photoImages;
FolderCollectionViewController.m
@synthesize photoImages;
static NSString * const reuseIdentifier = @"Cell";
- (void)viewDidLoad {
[super viewDidLoad];
self.photoImages = [NSArray arrayWithObjects:@"city23.gif", @"city24.gif", @"city25.gif", @"city26.gif", @"city29.gif", nil];
Folder.h:
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *date;
@property (nonatomic, strong) NSString *imageFile;
Folder.m:
@synthesize name;
@synthesize date;
@synthesize imageFile;
我的自定義的TableCell:
⎮⌈UI⌉名稱⎮
⎮⌊Image⌋日期⎮
這是我表一個大致的輪廓細胞。我無法發佈圖片。
對於任何不準確和錯誤的解釋提前道歉,我剛開始學習如何編程,因此我幾乎沒有知道它。
你在哪裏設置你的數據源指針? – 2014-12-09 12:54:27
根據您的解釋,您似乎希望在表格視圖的每個單元格中顯示集合視圖的第一個圖像,並單擊需要在其他視圖控制器的集合視圖中顯示所有圖像的單元格。但是在您的文件夾模型中,只有一個圖像顯示在單元格中,其他圖像與該文件夾相關的位置。 – 2014-12-09 13:07:21
@HotLicks我不知道你是否意味着這樣的: 接口FoldersTableViewController:的UITableViewController <的UITableViewDelegate,UITableViewDataSource> 接口FolderCollectionViewController:UICollectionViewController –
F90530
2014-12-09 13:18:00