我在storyboard文件中创建了一个标识符为"mainViewTableCell"的原型单元格,并将主表视图与名为"NTTableViewController"的自定义控制器类连接起来.我在NTTableViewController.m中实现了函数"tableView cellForRowAtIndexPath",如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* MAINVIEW_CELLIDENTIFIER = @"mainViewTableCell";
UITableViewCell *newCell = [tableView dequeueReusableCellWithIdentifier: MAINVIEW_CELLIDENTIFIER];
if (newCell == nil) {
newCell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier: MAINVIEW_CELLIDENTIFIER];
[newCell autorelease];
newCell.selectionStyle = UITableViewCellSelectionStyleNone;
}
NTContactItem* currentItem = [self.contactItemContainer objectInContainerAtIndex: indexPath.row];
NSString* firstName = currentItem.firstName;
NSString* lastName = currentItem.lastName;
NSString* fullName = [firstName stringByAppendingFormat: lastName];
[newCell.textLabel setText: fullName];
[newCell.detailTextLabel setText: currentItem.mobilePhone];
return newCell;
}
Run Code Online (Sandbox Code Playgroud)
但我继续从dequeueReusableCellWithIdentifier获取nil,并且每次都必须创建一个新的cell实例.
那么,有什么不对?
代码:项目
谢谢大家.
我有一个instantiateViewControllerWithIdentifier像这样创建的视图控制器实例:
TBSCTestController* testController = [self.storyboard instantiateViewControllerWithIdentifier: @"OTP"];
Run Code Online (Sandbox Code Playgroud)
TBSCTestController有一个IBOutlet名为的属性label,它与故事板中的标签相连:

我想修改label使用此代码的文本,但没有任何变化:
testController.label.text = @"newText";
[self.view addSubview: testController.view];
Run Code Online (Sandbox Code Playgroud)
这testController是一个有效的实例,但是label为零.我错过了什么?
我有一个UITableView和一个小的自定义视图.我希望自定义保留在导航栏下方,但在tableview上方.因此,当自定义视图上下移动时,看起来自定义视图会从导航栏的后面弹出.
首先,我将自定义视图作为tableview的子视图,一切似乎都很好.但是当滚动表视图时,自定义视图的位置也会改变,这不是我想要的.
然后我将导航栏设置为超级视图,但现在自定义视图保持在导航栏上方.我不知道如何更改父视图和子视图之间的z顺序.
那么有人可以给我一些建议吗?
谢谢!
ios ×2
iphone ×2
objective-c ×2
uikit ×2
cocoa ×1
cocoa-touch ×1
storyboard ×1
tableview ×1
xcode ×1