匯總ios開(kāi)發(fā)逆向傳值的方法
iOS的逆向傳值有很多種方法,下面來(lái)總結(jié)幾種常用的傳值方式(只貼相關(guān)代碼):
第一種:代理傳值
第二個(gè)控制器:
@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]; }
第一個(gè)控制器:
- (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; }
第二種:通知傳值
第一個(gè)控制器:
//注冊(cè)監(jiān)聽(tīng)通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(limitDataForModel:) name:@"NOV" object:nil]; - (void)limitDataForModel:(NSNotification *)noti{ self.gamesInfoArray = noti.object; }
第二個(gè)控制器:
//發(fā)送通知 [[NSNotificationCenter defaultCenter] postNotificationName:@"NOV" object:gameArray];
第三種:?jiǎn)卫齻髦?br />
Single是一個(gè)單例類,并且有一個(gè)字符串類型的屬性titleName
在第二個(gè)控制器:
- (IBAction)buttonClick:(UIButton*)sender { Single *single = [Single sharedSingle]; single.titleName = sender.titleLabel.text; [self.navigationController popViewControllerAnimated:YES]; }
第一個(gè)控制器:
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; Single *single = [Single sharedSingle]; self.navigationItem.title = single.titleName; }
第四種:block傳值
第二個(gè)控制器:
@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]; }
第一個(gè)控制器:
- (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傳值
第二個(gè)控制器:
extern NSString *btn; - (IBAction)buttonClick:(UIButton*)sender { btn = sender.titleLabel.text; [self.navigationController popViewControllerAnimated:YES]; }
第一個(gè)控制器:
NSString *btn = nil; - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; self.navigationItem.title = btn; }
第六種:KVO傳值
第一個(gè)控制器:
- (void)viewDidLoad { [super viewDidLoad]; _vc =[[SecondViewController alloc]init]; //self監(jiān)聽(tīng)vc里的textValue屬性 [_vc addObserver:self forKeyPath:@"textValue" options:0 context:nil]; }
第二個(gè)控制器:
- (IBAction)buttonClicked:(id)sender { self.textValue = self.textField.text; [self.navigationController popViewControllerAnimated:YES]; }
其實(shí)還有很多種傳值方式,比如說(shuō)NSUserDefaults,先把數(shù)據(jù)保持在本地,再讀取,或者寫(xiě)入plist及其它類型的文件再讀取等等許多方式,在這里就不一一列舉了!這些代碼寫(xiě)的時(shí)間比較久了,今天整理了一下,還比較亂,有什么不對(duì)或不足的地方請(qǐng)見(jiàn)諒!
相關(guān)文章
阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化心得
本篇文章給大家詳細(xì)分析了阿里數(shù)據(jù)iOS端啟動(dòng)速度優(yōu)化的知識(shí)點(diǎn)以及心得,對(duì)此有興趣的朋友參考學(xué)習(xí)下吧。2018-02-02iOS開(kāi)發(fā)之1行代碼實(shí)現(xiàn)緩存計(jì)算及清除緩存
這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)之1行代碼實(shí)現(xiàn)緩存計(jì)算及清除緩存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05解決SDK注入權(quán)限驗(yàn)證安卓正常,IOS出現(xiàn)config fail的方法
這篇文章主要介紹了解決SDK注入權(quán)限驗(yàn)證安卓正常,IOS出現(xiàn)config fail的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06iOS實(shí)現(xiàn)音樂(lè)播放器圖片旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)音樂(lè)播放器圖片旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10iOS中UIView實(shí)現(xiàn)不同方向的導(dǎo)角
這篇文章主要給大家介紹了關(guān)于iOS中UIView實(shí)現(xiàn)不同方向的導(dǎo)角的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或使用iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05iOS App中UILabel的自定義及在Auto Layout中的使用
這篇文章主要介紹了iOS App中UILabel的自定義及在Auto Layout中的使用,示例代碼為傳統(tǒng)的Objective-C語(yǔ)言,需要的朋友可以參考下2016-03-03