我创建了一个包含3 UITableViewCell
和UILabels
的自定义UIImageView
。我通过故事板进行设置,并且有一个UITableView
类连接到表格单元格。在那个类中,我想要处理不同的UI对象,并且可以选择从我的视图控制器传递信息。
这是我的表格单元格视图类的 正如您所看到的,我有一个所有故事板对象都连接到的属性插座。我还拥有每条必要信息的属性。在我的视图控制器中 方法我想用我传入的信息来实例化这个自定义单元格。我想用正确的信息设置信息属性,并在视图类中设置它。 以下是前面提到的方法中的代码: 我有两行,一个是为名称设置信息属性,我在视图的.m文件中将其设置为该属性名称。发生的问题是@property (retain, nonatomic) IBOutlet GBPathImageView *ProfileThumbnailImageView;
@property (weak, nonatomic) IBOutlet UILabel *profileDisplayNameLabel;
@property (weak, nonatomic) IBOutlet UILabel *profileUniversityNameLabel;
@property (weak, nonatomic) IBOutlet UILabel *profileNumberOfStringsLabel;
@property (strong, nonatomic) NSString *profileDisplayName;
@property (strong, nonatomic) UIImage *profileThumbnailImage;
@property (strong, nonatomic) NSString *profileUniversityName;
@property (nonatomic) NSUInteger profileNumberOfStrings;
- (id)initWithProfileImage:(UIImage *)profileImage
displayName:(NSString *)displayName
universityName:(NSString *)universityName
numberOfUserStrings:(NSUInteger)numberOfStrings;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *cellIdentifier = @"UserProfileCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if ([cell isKindOfClass:[StringrUserTableViewCell class]]) {
StringrUserTableViewCell * userProfileCell = (StringrUserTableViewCell *)cell;
userProfileCell.profileDisplayName = @"Alonso Holmes";
//userProfileCell.profileDisplayNameLabel.text = @"User Name";
}
profileDisplayName
属性在尝试设置UILabels
文本时为空。如何一次设置此信息,以便在加载单元格或最初加载单元格之前将其存在?您还可以看到注释掉的行,我直接在那里设置UILabel
的文本。我不希望这样做,因为我想将抽象/逻辑留给视图的类。我设置的图像视图是自定义的,因此需要更多代码。
答案 0 :(得分:0)
您正尝试在profileDisplayName
中设置NSString
类型而不是UILabel
类的文字。 (见@property (strong, nonatomic) NSString *profileDisplayName;
)。
更改您的代码行:
这是问题
userProfileCell.profileDisplayName = @“Alonso Holmes”; //使用Label Object而不是NSString