Ios 将数据从UITableView传递到XIB子视图
我相信有一个简单的解决办法,我已经四处看看,找不到任何帮助。我正在尝试将数据从UITableview传递到子视图。我不想使用segue,因为我希望xib文件与所需数据显示在同一个viewcontroller上。NSLog按预期输出,但不会传递到nowplayingnib视图中的字符串 ViewController.mIos 将数据从UITableView传递到XIB子视图,ios,objective-c,xcode,uitableview,subview,Ios,Objective C,Xcode,Uitableview,Subview,我相信有一个简单的解决办法,我已经四处看看,找不到任何帮助。我正在尝试将数据从UITableview传递到子视图。我不想使用segue,因为我希望xib文件与所需数据显示在同一个viewcontroller上。NSLog按预期输出,但不会传递到nowplayingnib视图中的字符串 ViewController.m - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPat
- (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);
}
更新
现在播放nib.h
@interface NowPlayingNib : UIView
@property (strong, nonatomic) NSString *videoId;
@property (strong, nonatomic) NSString *title;
+(id)viewFromNib;
@end
正在玩
@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非原子、强并再次检查
重写init方法,如下所示:
+(id)viewFromNib{
ViewController *songinfo = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:NULL]lastObject];
return songinfo;
}
你的产出NSLog@videonib内的id=%@,self.videoId;
在awakeFromNib方法中,但您仅在nib加载并添加到superview后才将值分配给videoId?感谢您的回复,但它仍然返回null。您的属性看起来如何?你是怎么写viewFromNib的?出于某种原因还是不走运。我想知道这是否是某种委托错误…你是如何检查的?你将它传递给log,或者你在屏幕上看不到任何东西?Ville Rinne是正确的,我在AwakefromNib方法中运行NSLog,但到那时它还没有被分配。感谢您的帮助。请共享您的viewFromNib方法代码和标题代码ViewController*songinfo=[[NSBundle mainBundle]loadNibNamed:@NowPlayingNib所有者:自选项:NULL]lastObject];-您在+方法中将所有者设置为“self”。应该是零