Protocol


TestCustomDelegate.h


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//
//  TestCustomDelegate.h
//  testProtocol
//
//  Created by Eteris on 2017. 12. 20..
//  Copyright © 2017년 Eteris. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
@protocol TestCustomDelegate <NSObject>
 
- (void) additionPrint: (int) result;
 
@end
cs



ViewController.m (protocol 수신)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
//  ViewController.m
//  testProtocol
//
//  Created by Eteris on 2017. 12. 20..
//  Copyright © 2017년 Eteris. All rights reserved.
//
 
#import "ViewController.h"
#import "SecondViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    NSLog(@"===== ViewController viewDidLoad =====");
    
    [_testButton addTarget:self action:@selector(testButonClick:) forControlEvents:UIControlEventTouchUpInside];
    
    
//    SecondViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
//
//    [self.navigationController pushViewController:second animated:YES];
}
 
- (IBAction)testButonClick:(UIButton *)sender
{
    NSLog(@"testButonClick");
    
    SecondViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    second.delegate = self; // delegate 부분이 중요
    [self.navigationController pushViewController:second animated:YES];
}
 
- (void) additionPrint: (int) result
{
    NSLog(@"===== ViewController additionPrint result : %d", result);
}
 
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
 
@end
 
cs


SecondViewController.h (protocol 발신)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//
//  SecondViewController.h
//  testProtocol
//
//  Created by Eteris on 2017. 12. 20..
//  Copyright © 2017년 Eteris. All rights reserved.
//
 
#import <UIKit/UIKit.h>
#import "ViewController.h"
#import "TestCustomDelegate.h"
 
@interface SecondViewController : UIViewController
 
@property (weak, nonatomic) id <TestCustomDelegate> delegate;
 
 
 
@end
 
cs


SecondViewController.m (protocol 발신)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
//  SecondViewController.m
//  testProtocol
//
//  Created by Eteris on 2017. 12. 20..
//  Copyright © 2017년 Eteris. All rights reserved.
//
 
#import "SecondViewController.h"
#import "ViewController.h"
 
@interface SecondViewController ()
 
@end
 
@implementation SecondViewController
 
@synthesize delegate;
 
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    NSLog(@"===== SecondViewController viewDidLoad =====");
    
    [self.delegate additionPrint:112];
}
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
 
@end
 
cs


'Developer > iOS - Objective-C' 카테고리의 다른 글

Lottie (Objctive-C)  (0) 2019.07.23
Protocol  (0) 2017.12.29
ImageDownload  (0) 2017.03.21
CustomView (UIView)  (0) 2017.03.21
NavigationController 내 TabbarController 자식의 부모 컴포넌트 사용  (0) 2017.01.09
viewController 에서 NavigationController 쓰기  (0) 2016.11.21

이 글을 공유하기


댓글(0)

Designed by CMSFactory.NET