首页 > 代码库 > UINavigationController在一个界面push到另一个界面传数据时的注意点

UINavigationController在一个界面push到另一个界面传数据时的注意点

在push到下一个controller的时候,应注意以下几点:

1》在执行push代码的时候,才创建controller,不要在push之前使用controller里面的view

如下面的错误事例:

 CommentModel *model = [_arraySaveDataobjectAtIndex:but.tag];

    

    CommentDetailViewController *commentDetailVC = [[CommentDetailViewControlleralloc] init];

    commentDetailVC.navigationItem.title = but.titleLabel.text;

    

    NSData *imageData = http://www.mamicode.com/[NSDatadataWithContentsOfURL:getImageUrl(model.filename)];

    commentDetailVC.imageView.image = [UIImage imageWithData:imageData];

    commentDetailVC.lable.text = model.goods_name;    

    commentDetailVC.ID = model.ID;

    commentDetailVC.goods_id = model.goods_id;

    commentDetailVC.order_id = model.order_id;

     [self.navigationControllerpushViewController:commentDetailVC animated:YES];

注:标红的两句是错误的,这样会造成传过去的数据为空,因为在push之前还没创建controller

应修改为:

commentDetailVC.image = [UIImage imageWithData:imageData];

 commentDetailVC.text = model.goods_name;  【不使用push到的那个controller的视图相关的内容】