iOS页面间传值及自定义类拷贝问题

移动开发 iOS
做网络相关的一些问题时,有时候值比较多,自定义个一个类,想把这个类的整个部分的值传到另一个界面,这就涉及到拷贝问题,自定义的类里一定要实现NSCopying协议,写上拷贝的方法- (id)copyWithZone:(NSZone *)zone,这样这个类才会像NSString类一样,可以用=赋值拷贝。

自定义一个TypesItem类,继承自NSObject,含有三个变量(可自定义添加多个)

TypesItem.h

  1. #import <Foundation/Foundation.h>  
  2.     @interface TypesItem : NSObject<NSCopying>  
  3.     {  
  4.         NSString *type_id;  
  5.         NSString *type_memo;  
  6.         NSString *type_name;  
  7.     }  
  8.     @property (nonatomic,copy) NSString *type_id;  
  9.     @property (nonatomic,copy) NSString *type_memo;  
  10.     @property (nonatomic,copy) NSString *type_name;  
  11.     @end  

TypesItem.m文件中,除了要synthesize这三个变量之外

  1. @synthesize type_id,type_memo,type_name; 

还要实现NSCopying协议方法

- (id)copyWithZone:(NSZone *)zone

  1. - (id)copyWithZone:(NSZone *)zone 
  2.     { 
  3.         TypesItem *newItem = [[TypesItem allocWithZone:zone] init]; 
  4.         newItem.type_name = self.type_name; 
  5.         newItem.type_id = self.type_id; 
  6.         newItem.type_memo = self.type_memo; 
  7.         return newItem; 
  8.     } 

页面间传值,假设A->B,A中的TypeItem的值要传到B中

在B中.h文件写上代码

  1. @property(nonatomic,copy) TypesItem *selectedItem; 

在B.m文件中

  1. @synthesize selectedItem; 

在A.m中跳转到B之前加上代码

  1. BViewController *BVC = [[[BViewController alloc] initWithNibName:@"BViewController" bundle:nil] autorelease]; 
  2.         // item为TypeItem类型,且不为空 
  3.         BVC.selectedItem = item; 
  4.         [self.navigationController pushViewController:BVC animated:YES]; 

PS:页面间传值时,此处的BVC.selectedItem中的BVC一定与push过去的BVC保持一致,否则push到B界面中的selectedItem值必定为null。

责任编辑:闫佳明 来源: oschina
相关推荐

2013-07-05 15:05:42

Windows PhoWP页面间传值方法

2011-12-16 14:23:51

Java

2012-06-29 13:31:56

ServletJSPJava

2013-06-27 11:10:01

iOS开发自定义UISlider

2023-10-24 13:48:50

自定义注解举值验证

2013-07-18 16:09:10

自定义iOS状态栏iOS开发iOS学习

2013-05-30 15:53:17

iOS开发iOS SDKPopver

2011-08-02 11:17:13

iOS开发 View

2021-01-20 08:58:39

iOS 14桌面图标快捷指令

2017-10-25 14:07:54

APPiOSxcode

2012-06-01 11:02:33

2012-12-24 14:42:48

iOS自定义状态栏

2015-02-12 15:33:43

微信SDK

2009-07-06 10:00:31

JSP页面传值

2015-02-12 15:38:26

微信SDK

2015-01-15 16:45:05

iOS源码自定义画图

2016-08-23 13:21:15

MVC路由视图

2021-12-30 08:39:56

Zabbix更换 logo运维

2010-05-11 16:55:12

Windows Pho

2023-10-19 09:14:34

Java开发
点赞
收藏

51CTO技术栈公众号