国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

匯總ios開發逆向傳值的方法

2020-07-26 03:25:16
字體:
來源:轉載
供稿:網友

iOS的逆向傳值有很多種方法,下面來總結幾種常用的傳值方式(只貼相關代碼):

第一種:代理傳值
第二個控制器:

@protocol WJSecondViewControllerDelegate <NSObject>- (void)changeText:(NSString*)text;@end @property(nonatomic,assign)id<WJSecondViewControllerDelegate>delegate;- (IBAction)buttonClick:(UIButton*)sender {_str = sender.titleLabel.text;[self.delegate changeText:sender.titleLabel.text];[self.navigationController popViewControllerAnimated:YES];}

第一個控制器:

- (IBAction)pushToSecond:(id)sender {WJSecondViewController *svc = [[WJSecondViewController alloc]initWithNibName:@"WJSecondViewController" bundle:nil];svc.delegate = self;svc.str = self.navigationItem.title;[self.navigationController pushViewController:svc animated:YES];[svc release];}- (void)changeText:(NSString *)text{self.navigationItem.title = text;}

第二種:通知傳值
第一個控制器:

 //注冊監聽通知 [[NSNotificationCenter defaultCenter] addObserver:self     selector:@selector(limitDataForModel:) name:@"NOV" object:nil];- (void)limitDataForModel:(NSNotification *)noti{self.gamesInfoArray = noti.object;}

第二個控制器:

//發送通知 [[NSNotificationCenter defaultCenter]   postNotificationName:@"NOV" object:gameArray];

第三種:單例傳值
Single是一個單例類,并且有一個字符串類型的屬性titleName
在第二個控制器:

- (IBAction)buttonClick:(UIButton*)sender {Single *single = [Single sharedSingle];single.titleName = sender.titleLabel.text;[self.navigationController popViewControllerAnimated:YES];}

第一個控制器:

- (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];Single *single = [Single sharedSingle];self.navigationItem.title = single.titleName;}

第四種:block傳值
第二個控制器:

@property (nonatomic,copy) void (^changeText_block)(NSString*);- (IBAction)buttonClick:(UIButton*)sender {_str = sender.titleLabel.text;self.changeText_block(sender.titleLabel.text);[self.navigationController popViewControllerAnimated:YES];}

第一個控制器:

- (IBAction)pushToSecond:(id)sender {WJSecondViewController *svc = [[WJSecondViewController alloc]initWithNibName:@"WJSecondViewController" bundle:nil];svc.str = self.navigationItem.title;[svc setChangeText_block:^(NSString *str) {  >self.navigationItem.title = str;}];[self.navigationController pushViewController:svc animated:YES];}

第五種:extern傳值
第二個控制器:

 extern NSString *btn;- (IBAction)buttonClick:(UIButton*)sender {btn = sender.titleLabel.text;[self.navigationController popViewControllerAnimated:YES];}

第一個控制器:

NSString *btn = nil;- (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];self.navigationItem.title = btn;}

第六種:KVO傳值
第一個控制器:

- (void)viewDidLoad {[super viewDidLoad]; _vc =[[SecondViewController alloc]init];//self監聽vc里的textValue屬性[_vc addObserver:self forKeyPath:@"textValue" options:0 context:nil];  }

第二個控制器:

- (IBAction)buttonClicked:(id)sender {self.textValue = self.textField.text;[self.navigationController popViewControllerAnimated:YES];}

其實還有很多種傳值方式,比如說NSUserDefaults,先把數據保持在本地,再讀取,或者寫入plist及其它類型的文件再讀取等等許多方式,在這里就不一一列舉了!這些代碼寫的時間比較久了,今天整理了一下,還比較亂,有什么不對或不足的地方請見諒!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴业县| 台东市| 松滋市| 贵阳市| 沁水县| 汉沽区| 蒙自县| 上饶县| 中江县| 渭源县| 鄂托克前旗| 三穗县| 鄄城县| 红河县| 芦溪县| 霍林郭勒市| 咸宁市| 抚宁县| 封丘县| 甘肃省| 林甸县| 小金县| 镇巴县| 唐山市| 星座| 安多县| 酒泉市| 融水| 昌平区| 花莲县| 离岛区| 陇南市| 孝感市| 抚松县| 赫章县| 调兵山市| 夹江县| 炉霍县| 崇州市| 改则县| 炉霍县|