问题描述
- 急!传值传不过去,输出的值为null
-
有两个界面,第一个界面tableview- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
PlayerViewController *playerVC=[[PlayerViewController alloc]init];
playerVC.link=@"ggggggggg";
[self presentViewController:playerVC animated:YES completion:nil];
}
第二个PlayerViewController :
@property (nonatomic,retain)NSString *link;但是输出link却为null
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
解决方案
在viewDidLoad中访问self.link拿不到传递过去的值吗? 正常情况下是可以拿到传递过来的值的。
解决方案二:
你不会是在 init 或者 initwitiNib... 里面 打印的吧 ,如果是的话 肯定 为 null
init 执行的时候 ,你还没有赋值呢 ,写到 viewdidload 里面 应该是 没问题的
解决方案三:
你在哪打印的,我在- (void)viewDidLoad里打印没有问题
解决方案四:
看一下你的界面切换方式是否有问题,这是我项目里界面转换的代码,你可以参考一下
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
GoodsViewController *goodsView = [storyboard instantiateViewControllerWithIdentifier:@"GoodsViewController"];
sRThreeVCModel = [[SRThreeVCModel alloc]init];
goodsView.sRThreeVCModel = sRThreeVCModel;
[self presentViewController:goodsView animated:YES completion:nil];
两个controller都有srthreevcmodel属性
其中还要在GoodsViewController的UI那里设置StoryBoardId为“GoodsViewController”
解决方案五:
add method as follows:
forceSetLink(input)
{
link = input
}
解决方案六:
你的对象是局部变量 怎么可能拿到
解决方案七:
首先,你这个方法走了么,没走指定传不了呀
解决方案八:
肯定是在 init中打印的,还没走playerVC.link=@"ggggggggg"这句话呢,怎么可能有值
解决方案九:
你可以设断点在那个赋值语句,然后执行程序,是否会触发?假如你没有执行那段程序,自然数据也是没有的
解决方案十:
首先代码格式是这么写的吗?注意写代码的格式。
要是按照你这样写的话是不会有问题的。