将数据从 UITableView 传递到 XIB 子视图
Passing data from a UITableView to a XIB Subview
我确定有一个简单的解决方案,但我环顾四周但找不到任何帮助。我正在尝试将数据从 UITableview 传递到子视图。我不想使用 segue,因为我希望 xib 文件出现在与所需数据相同的 viewcontroller 上。 NSLog 按预期输出但未传递到 "nowplayingnib" 视图中的字符串。
ViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SongInfo *song = songsArray[indexPath.row];
NowPlayingNib *nowplayingnib = (NowPlayingNib *)[NowPlayingNib viewFromNib];
[self.view addSubview:nowplayingnib];
nowplayingnib.videoId = song.videoId;
NSLog(@"%@", song.videoId);
}
更新
NowPlayingNib.h
@interface NowPlayingNib : UIView
@property (strong, nonatomic) NSString *videoId;
@property (strong, nonatomic) NSString *title;
+(id)viewFromNib;
@end
NowPlaying.m
@implementation NowPlayingNib
@synthesize videoId;
-(void)awakeFromNib{
NSLog(@"video id inside nib = %@", self.videoId);
}
+(id)viewFromNib{
ViewController *songinfo = [[[NSBundle mainBundle] loadNibNamed:@"NowPlayingNib" owner:self options:NULL]lastObject];
return songinfo;
}
nowplayingnib.videoId
的类型是什么?
完成@property (nonatomic,strong)
并再次检查
重写初始化方法,如:
+(id)viewFromNib{
ViewController *songinfo = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:NULL]lastObject];
return songinfo;
}
您的输出 NSLog(@"video id inside nib = %@", self.videoId);
是在 awakeFromNib 方法中,但您只是在加载 nib 并将其添加到超级视图后才将值分配给 videoId?
我确定有一个简单的解决方案,但我环顾四周但找不到任何帮助。我正在尝试将数据从 UITableview 传递到子视图。我不想使用 segue,因为我希望 xib 文件出现在与所需数据相同的 viewcontroller 上。 NSLog 按预期输出但未传递到 "nowplayingnib" 视图中的字符串。
ViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SongInfo *song = songsArray[indexPath.row];
NowPlayingNib *nowplayingnib = (NowPlayingNib *)[NowPlayingNib viewFromNib];
[self.view addSubview:nowplayingnib];
nowplayingnib.videoId = song.videoId;
NSLog(@"%@", song.videoId);
}
更新
NowPlayingNib.h
@interface NowPlayingNib : UIView
@property (strong, nonatomic) NSString *videoId;
@property (strong, nonatomic) NSString *title;
+(id)viewFromNib;
@end
NowPlaying.m
@implementation NowPlayingNib
@synthesize videoId;
-(void)awakeFromNib{
NSLog(@"video id inside nib = %@", self.videoId);
}
+(id)viewFromNib{
ViewController *songinfo = [[[NSBundle mainBundle] loadNibNamed:@"NowPlayingNib" owner:self options:NULL]lastObject];
return songinfo;
}
nowplayingnib.videoId
的类型是什么?
完成@property (nonatomic,strong)
并再次检查
重写初始化方法,如:
+(id)viewFromNib{
ViewController *songinfo = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:NULL]lastObject];
return songinfo;
}
您的输出 NSLog(@"video id inside nib = %@", self.videoId);
是在 awakeFromNib 方法中,但您只是在加载 nib 并将其添加到超级视图后才将值分配给 videoId?