从视图中检索数据到情节提要中的 UITableViewCell
Posted
技术标签:
【中文标题】从视图中检索数据到情节提要中的 UITableViewCell【英文标题】:data retrieving from a view to UITableViewCell in storyboard 【发布时间】:2013-11-26 13:00:11 【问题描述】:我在 Xcode 中遇到了同样的错误,但不知道为什么(我的错) 我正在尝试使用下面的 uitexfield 代码检索已保存的数据 那部分是为了节省
- (IBAction)saveCourseDetail:(id)sender
NSMutableDictionary *courseDictionary=[NSMutableDictionary new];
[courseDictionary setObject:courseName.text forKey:@"courseName"];
[courseDictionary setObject:courseDescription.text forKey:@"courseDescription"];
[courseDictionary setObject:classRoom.text forKey:@"classRoom"];
[courseDictionary setObject:teacherName.text forKey:@"teacherName"];
[courseDictionary setObject:buildingName.text forKey:@"buildingName"];
NSUserDefaults *savedData=[NSUserDefaults standardUserDefaults];
[savedData setObject:courseDictionary forKey:@"courseDictionary"];
[savedData synchronize];
// [self.delegate reloadTableData];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CourseAddedNotification" object:nil];
[self.navigationController popViewControllerAnimated:YES];
#pragma mark Course Tableview
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *string = [_dataArray objectAtIndex:indexPath.row];
NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell==nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.text=string;
return cell;
and the tableview that i'm trying to get the saved course details
#pragma mark - Table View Delegate -
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 10;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
CourseCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if (!cell)
cell = [[CourseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
return cell;
但我不断收到同样的错误—— 2013-11-26 14:43:19.496 SidebarDemo[1170:70b] * 断言失败 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2903.23/UITableView.m:5261 2013-11-26 14:43:19.500 SidebarDemo[1170:70b] * 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使具有标识符 Cell 的单元格出列 - 必须注册一个 nib 或一个类用于标识符或连接故事板中的原型单元'
谁能帮帮我?
【问题讨论】:
你的故事板中是否有一个带有单元标识符的原型单元? 【参考方案1】:您必须在 4.tab 的属性检查器中设置情节提要中的单元格标识符。标识符必须等于源代码中的标识符(此处为“Cell”)。
【讨论】:
【参考方案2】:你必须使用
static NSString *CellIdentifier = @"messageCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
不要使用
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
苹果文档:
重要
在调用此方法之前,您必须使用 registerNib:forCellReuseIdentifier: 或 registerClass:forCellReuseIdentifier: 方法注册类或 nib 文件。
【讨论】:
【参考方案3】:在storyboard
中将identifier
添加到您的uitableviewCell
,命名“Cell”与您在cellForRowAtIndexPath:
方法中使用的名称相同
【讨论】:
以上是关于从视图中检索数据到情节提要中的 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章
使用委托将数据从模态视图传递到父视图(在情节提要中使用 segue)
如何使用 Swift 中的自动生成键从情节提要中设置的 UITextView 中检索文本?