Objective-C------- 傳值總結(jié)

一恢口、屬性傳值

A界面->B界面?zhèn)髦?/p>

B_界面.h文件(接收者)

? ? ? ? ? ? B界面.h

//1.聲明屬性

@property (nonatomic, copy) NSString *bString;

A_界面.m文件(發(fā)送者)

? ? ? ? ? ? A界面.m

//2.屬性傳值

BViewController *bVC = [BViewController new];

bVC.bString = @"A";

[self.navigationController pushViewController:bVC animated:YES];

B_界面.m文件(接收者)

? ? ? ? ? ? ? B界面.m

//3.結(jié)果

NSLog(@"A界面→B界面:%@", self.bString);

//輸出:? A界面→B界面:A

二署辉、方法傳值

A界面->B界面?zhèn)髦?/p>

B_界面.m文件(接收者)

? ? ? ? ? ? ? B界面.m

//1.自定義初始化方法

- (instancetype)initWithOne:(NSString *)one Two:(CGFloat)two{

self = [super init];

if (self) {

//4.結(jié)果

NSLog(@"A界面→B界面:%@ %.2f", one, two);

//輸出: A界面→B界面:A 99.90

}

return self;

}

B_界面.h文件(接收者)

? ? ? ? ? ? ? ? ? B界面.h

//2.聲明初始化方法

- (instancetype)initWithOne:(NSString *)one Two:(CGFloat)two;

A_界面.m文件(發(fā)送者)

? ? ? ? ? ? ? ? ? A界面.m

//3.方法傳值

BViewController *bVC = [[BViewController alloc] initWithOne:@"A" Two:99.9];

[self.navigationController pushViewController:bVC animated:YES];

三草冈、代理傳值

B界面->A界面?zhèn)髦?/p>

B_界面.h文件(發(fā)送者)

? ? ? ? ? ? ? ? ? ? B界面.h

#import

//1.聲明協(xié)議和代理方法

@protocol BViewControllerDelegate

- (void)protocolSendValue:(NSString *)value;

@end

@interface BViewController : UIViewController

//2.設(shè)置代理(ARC用weak,MRC用assign)

@property (nonatomic, weak) id myDelegate;

@end

B_界面.m文件(發(fā)送者)

? ? ? ? ? ? ? ? ? B界面.m

//3.讓代理執(zhí)行代理方法(代理傳值)

[self.myDelegate protocolSendValue:@"B"];

A_界面.m文件(接收者)

? ? ? ? ? ? ? ? ? A界面.m

//4.簽訂代理協(xié)議

@interface AViewController ()

@end

- (void)viewDidLoad {

[super viewDidLoad];

//5.指定代理

BViewController *bVC = [BViewController new];

bVC.myDelegate = self;

[self.navigationController pushViewController:bVC animated:YES];

}

#pragma mark -BViewControllerDelegate

//6.實現(xiàn)代理方法(結(jié)果)

- (void)protocolSendValue:(NSString *)value{

NSLog(@"B界面→A界面:%@", value);

//輸出: B界面→A界面:B

}

四、Block傳值

B界面->A界面?zhèn)髦?/p>

注:Block中要防止在文件中循環(huán)引用

B_界面.h文件(發(fā)送者)

? ? ? ? ? ? ? ? ? ? ?B界面.h

//1.聲明Block屬性

typedef void(^ValueBlock)(NSString *);

@interface BViewController : UIViewController

@property (nonatomic, copy) ValueBlock valueBlock;

@end

B_界面.m文件(發(fā)送者)

? ? ? ? ? ? ? ? ? ? ?B界面.m

//2.Block傳值(代碼塊屬性不為空)

if (self.valueBlock) {

self.valueBlock(@"B");

}

A_界面.m文件(接收者)

? ? ? ? ? ? ? ? ?A界面.m

BViewController *bVC = [BViewController new];

[self.navigationController pushViewController:bVC animated:YES];

//3.結(jié)果(Block中要防止在文件中循環(huán)引用)

//__weak typeof(self) weakSelf = self;

bVC.valueBlock = ^(NSString *string){

NSLog(@"B界面→A界面:%@", string);

//輸出: B界面→A界面:B

};

五胡桃、通知中心傳值

任意界面->A界面

注:發(fā)送者和接收者name參數(shù)必須保持一致

A_界面.m文件(接收者)

? ? ? ? ? ? ? ? ? ? A界面.m

//1.注冊通知

- (void)viewDidLoad {

[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(acceptNotification:) name:@"noticeSendValue" object:nil];

CViewController *cVC = [CViewController new];

[self.navigationController pushViewController:cVC animated:YES];

}

//2.銷毀通知

- (void)viewDidDisappear:(BOOL)animated{

[super viewDidDisappear:animated];

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"noticeSendValue" object:nil];

}

//4.結(jié)果

- (void)acceptNotification:(NSNotification*)notification{

NSLog(@"%@",? notification.userInfo);

//輸出:? {name = text;}

}

C_界面.m(發(fā)送者)

? ? ? ? ? ? ? ? ? ? ?C界面.m

//3.通知傳值

[[NSNotificationCenter defaultCenter] postNotificationName:@"noticeSendValue" object:self userInfo:@{@"name": @"text"}];

六蜓堕、單例傳值

A界面->任意界面

使用單例模式,編寫ValueManager單例類來存儲數(shù)據(jù)

ValueManager.h文件(全局唯一)

//////////單例.h//////////

@interface ValueManager : NSObject

+ (ValueManager *)shareValueManager;

@property (nonatomic, copy) NSString *strValue;

@end

ValueManager.m文件(全局唯一)

//////////單例.m//////////

+ (ValueManager *)shareValueManager{

static ValueManager *shareValueManager = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

shareValueManager = [ValueManager new];

});

return shareValueManager;

}

A_界面.m文件(發(fā)送者)

//////////A界面.m//////////

//2.單例傳值(存值)

ValueManager *valueManager = [ValueManager shareValueManager];

valueManager.strValue = @"Singleton";

C_界面.m文件(接收者)

//////////C界面.m//////////

//3.結(jié)果(取值)

ValueManager *valueManager = [ValueManager shareValueManager];

NSLog(@"%@", valueManager.strValue);

//輸出: Singleton

七、NSuserDefault傳值

A界面->任意界面

A_界面.m文件(發(fā)送者)

//////////A界面.m//////////

//1.NSuserDefault傳值(存值)

[[NSUserDefaults standardUserDefaults] setObject:@"NSUserDefaults" forKey:@"name"];

[[NSUserDefaults standardUserDefaults] synchronize];

C_界面.m文件(接收者)

//////////C界面.m//////////

//2.取值

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"name"]);

//輸出:? NSUserDefaults

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闷畸,一起剝皮案震驚了整個濱河市尝盼,隨后出現(xiàn)的幾起案子吞滞,更是在濱河造成了極大的恐慌,老刑警劉巖盾沫,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裁赠,死亡現(xiàn)場離奇詭異,居然都是意外死亡赴精,警方通過查閱死者的電腦和手機佩捞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕾哟,“玉大人一忱,你說我怎么就攤上這事√啡罚” “怎么了帘营?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逐哈。 經(jīng)常有香客問我芬迄,道長,這世上最難降的妖魔是什么昂秃? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任禀梳,我火速辦了婚禮杜窄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘算途。我一直安慰自己塞耕,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布嘴瓤。 她就那樣靜靜地躺著荷科,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纱注。 梳的紋絲不亂的頭發(fā)上畏浆,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音狞贱,去河邊找鬼刻获。 笑死,一個胖子當著我的面吹牛瞎嬉,可吹牛的內(nèi)容都是我干的蝎毡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼氧枣,長吁一口氣:“原來是場噩夢啊……” “哼沐兵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起便监,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤扎谎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烧董,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毁靶,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年逊移,在試婚紗的時候發(fā)現(xiàn)自己被綠了预吆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡胳泉,死狀恐怖拐叉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扇商,我是刑警寧澤凤瘦,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站钳吟,受9級特大地震影響廷粒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一坝茎、第九天 我趴在偏房一處隱蔽的房頂上張望涤姊。 院中可真熱鬧,春花似錦嗤放、人聲如沸思喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恨课。三九已至,卻和暖如春岳服,著一層夾襖步出監(jiān)牢的瞬間剂公,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工吊宋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纲辽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓璃搜,卻偏偏與公主長得像拖吼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子这吻,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容