Objective-C 「?jìng)髦怠?/h1>
Objective-C

一欢策、屬性傳值


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 <UIKit/UIKit.h>
//1.聲明協(xié)議和代理方法
@protocol BViewControllerDelegate <NSObject>
- (void)protocolSendValue:(NSString *)value;
@end

@interface BViewController : UIViewController
//2.設(shè)置代理(ARC用weak,MRC用assign)
@property (nonatomic, weak) id <BViewControllerDelegate> myDelegate;
@end

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

        //////////B界面.m//////////

//3.讓代理執(zhí)行代理方法(代理傳值)
    [self.myDelegate protocolSendValue:@"B"];

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

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

//4.簽訂代理協(xié)議
@interface AViewController ()<BViewControllerDelegate>
@end
  
- (void)viewDidLoad {
    [super viewDidLoad];
//5.指定代理
    BViewController *bVC = [BViewController new];
    bVC.myDelegate = self;
    [self.navigationController pushViewController:bVC animated:YES];
}

#pragma mark -BViewControllerDelegate
//6.實(shí)現(xiàn)代理方法(結(jié)果)
- (void)protocolSendValue:(NSString *)value{
    NSLog(@"B界面→A界面:%@", value);
    //輸出: B界面→A界面:B
}

四渠退、Block傳值


B界面->A界面?zhèn)髦?br> 注: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.注冊(cè)通知
- (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單例類來存儲(chǔ)數(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)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市悔据,隨后出現(xiàn)的幾起案子庄敛,更是在濱河造成了極大的恐慌,老刑警劉巖科汗,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藻烤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡头滔,警方通過查閱死者的電腦和手機(jī)怖亭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拙毫,“玉大人依许,你說我怎么就攤上這事∽禾悖” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵膘婶,是天一觀的道長(zhǎng)缺前。 經(jīng)常有香客問我,道長(zhǎng)悬襟,這世上最難降的妖魔是什么衅码? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮脊岳,結(jié)果婚禮上逝段,老公的妹妹穿的比我還像新娘垛玻。我一直安慰自己,他們只是感情好奶躯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布帚桩。 她就那樣靜靜地躺著,像睡著了一般嘹黔。 火紅的嫁衣襯著肌膚如雪账嚎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天儡蔓,我揣著相機(jī)與錄音郭蕉,去河邊找鬼。 笑死喂江,一個(gè)胖子當(dāng)著我的面吹牛召锈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播获询,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涨岁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了筐付?” 一聲冷哼從身側(cè)響起卵惦,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓦戚,沒想到半個(gè)月后沮尿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡较解,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年畜疾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片印衔。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啡捶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奸焙,到底是詐尸還是另有隱情瞎暑,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布与帆,位于F島的核電站了赌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏玄糟。R本人自食惡果不足惜勿她,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阵翎。 院中可真熱鬧逢并,春花似錦之剧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至辩恼,卻和暖如春雇庙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灶伊。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工疆前, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聘萨。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓竹椒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親米辐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胸完,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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