1. 程式人生 > >iOS NSNotification(通知)傳值~demo

iOS NSNotification(通知)傳值~demo

//聯絡人:石虎  QQ: 1224614774暱稱:嗡嘛呢叭咪哄

/**

注意點: 1.看 GIF 效果圖.

       2.看連線檢視的效果圖.

       3.看實現程式碼(直接複製實現效果).

*/

一、GIF 效果圖:


二、連線檢視的效果圖:

圖1:


圖2:


三、實現程式碼:

=========================

===================================================

==========================

控制器1:

//  ViewController.m

//  通知測試 dome

//

//  Created by

石虎 on 2017/7/22.

//  Copyright © 2017 shihu. All rights reserved.

//

#import "ViewController.h"

#import "SHTwoViewController.h"

@interface ViewController ()

//顯示傳值的內容

@property (weak,nonatomic)IBOutletUILabel *textStrng;

//跳轉

- (IBAction)notificationClick:(UIButton *)sender;

@end

@implementation

ViewController

- (void)viewDidLoad {

    [superviewDidLoad];

//註冊通知----第一部

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(showLabelText:)name:@"labelTextNotification"object:nil];

}

//實現通知監聽 ---第二部

- (void)showLabelText:(NSNotification *)notification

{

//第三,實現通知中心內部的方法

,並實現傳值

id text = notification.object;

//賦值到文字上面

self.textStrng.text = text;

}

//釋放通知 ---第四部

- (void)dealloc

{

//第四步,訊息傳送完,要移除掉

    [[NSNotificationCenterdefaultCenter]removeObserver:selfname:@"labelTextNotification"object:nil];

}

#pragma mark -//點選通知跳轉

- (IBAction)notificationClick:(UIButton *)sender{

SHTwoViewController *twoVC =[[SHTwoViewControlleralloc]init];

    [selfpresentViewController:twoVCanimated:YEScompletion:nil];;

}

@end

=========================

===================================================

==========================

控制器2:

/  SHTwoViewController.m

//  通知測試 dome

//

//  Created by 石虎 on 2017/7/22.

//  Copyright © 2017 shihu. All rights reserved.

//

#import "SHTwoViewController.h"

#import "ViewController.h"

@interface SHTwoViewController ()

//輸入要傳值的文字

@property (weak,nonatomic)IBOutletUITextField *TextField;

//開始傳值

- (IBAction)startValue:(id)sender;

@end

@implementation SHTwoViewController

- (void)viewDidLoad {

    [superviewDidLoad];

}

//開始傳值

- (IBAction)startValue:(id)sender

{

//釋出通知----第三部

    [[NSNotificationCenterdefaultCenter]postNotificationName:@"labelTextNotification"object:self.TextField.text];

    [selfdismissViewControllerAnimated:YEScompletion:nil];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    [self.viewendEditing:YES];

}

@end


謝謝!!!