博客> iOS 传值的方式
iOS 传值的方式
2017-12-14 17:29 评论:0 阅读:465 默默besty
ios 传值

1.属性传值 @interface NewsController : UIViewController 从 NewsController 往后传值

pragma mark 点击cell 传递值

  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath { // QianChuanHouController 是后面接收数据的页面 QianChuanHouController controll = [[QianChuanHouController alloc]init]; UINavigationController na = [[UINavigationController alloc]initWithRootViewController:controll];

    NewsModel models = self.dataArray[indexPath.row]; controll.model = models; [self presentViewController:na animated:YES completion:nil]; NSLog(@"%ld", indexPath.row); } // 这个是 接收页面 @protocol QianChuanZhiDelegate @property (nonatomic, strong)NewsModel model; // 这样就可以把 数据从前一个页面传给后一个页面 2,代理传值 // 后面往前传 需要用到代理 在 QianChuanHouController 控制器里面设代理

    // 声明代理 @protocol QianChuanZhiDelegate

    //声明代理方法 @optional

  • (void)ViewController:(NSString )string; @end @interface QianChuanHouController : UIViewController @property (nonatomic, strong)NewsModel model; @property (nonatomic, strong)id delegate; // 实现代理方法
  • (void)actionss { // 实现代理方法 [self.delegate ViewController:self.model.name];

    [self dismissViewControllerAnimated:YES completion:nil]; } // 在接接收的页面遵循代理并且实现方法 @interface NewsController ()

  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath { QianChuanHouController *controll = [[QianChuanHouController alloc]init]; controll.delegate = self;

    UINavigationController *na = [[UINavigationController alloc]initWithRootViewController:controll];

    NewsModel *models = self.dataArray[indexPath.row]; controll.model = models;

    [self presentViewController:na animated:YES completion:nil];

    NSLog(@"%ld", indexPath.row); } // 实现代理方法

  • (void)ViewController:(NSString *)string { NSLog(@"代理传值 %@", string); }

这是在网上看到的,mark一下

收藏
0
sina weixin mail 回到顶部