투케이2K

54. (Objective-C/objc) UIButton 생성 및 클릭 (click) 이벤트 지정, 타이틀 텍스트 (text) 변경 실시 본문

Objective-C

54. (Objective-C/objc) UIButton 생성 및 클릭 (click) 이벤트 지정, 타이틀 텍스트 (text) 변경 실시

투케이2K 2022. 8. 24. 14:04
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[그림 설명]

 

[ViewController.h : 소스 코드]

#import <UIKit/UIKit.h>


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 등 선언
// -----------------------------------------
*/



// -----------------------------------------
// [클래스 내부 함수로 구현 실시]
@interface ViewController : UIViewController {
    
}

// -----------------------------------------
// [프로퍼티 버튼 속성 지정 실시]
// -----------------------------------------
/*
1. property (프로퍼티 정의)
  - 클래스의 속성이나 설정을 지정하는 것입니다
  - 변수 , 메소드 등을 선언해서 사용할 수 있습니다
  - 프로퍼티는 실제 사용할때는 클래스에서 getter , setter 의미로 사용하면 됩니다
 
2. class
  - 사용자 클래스 선언을 위해서 사용합니다
  
3. nonatomic
  - 멀티 스레드 환경에는 작동 안하게 설정
 
4. assign
  - get , set 사용
*/
// -----------------------------------------

@property (nonatomic, retain) IBOutlet UIButton * intentButton; // [get , set 속성]
- (IBAction)intentButtonClicked:(id)sender; // [클릭 이벤트 정의]

// -----------------------------------------

@end
// -----------------------------------------
 

[ViewController.m : 소스 코드]

#import "ViewController.h"
#import "S_FinalData.h"
#import "TestClass.h"

// MARK: - [프로젝트-Swift.h import 명시]
#import "objectTest-Swift.h"



// MARK: - [Private 변수 선언 영역]
@interface ViewController (){
    
}
@end



// MARK: - [몸체 (구현부) 동작 작성]
@implementation ViewController



// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (구현부)
2. ios 13 이상 사용 : API_AVAILABLE(ios(13.0))
// -----------------------------------------
*/




// [클래스 헤더 파일에 선언 한 property 속성 지정]
@synthesize intentButton;




// MARK: - [뷰 로드 실시]
- (void)viewDidLoad {
    [super viewDidLoad];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidLoad() :: 뷰 로드 실시] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [뷰 로드 완료]
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewWillAppear() :: 뷰 로드 완료] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [뷰 화면 표시]
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidAppear() :: 뷰 화면 표시] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [뷰 정지 상태]
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewWillDisappear() :: 뷰 정지 상태] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [뷰 종료 상태]
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidDisappear() :: 뷰 종료 상태] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [포그라운드 상태 로직 처리 메소드]
- (void)checkForeground:(NSNotification *) note {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> checkForeground() :: 뷰 컨트롤러 포그라운드 상태] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [백그라운드 상태 로직 처리 메소드]
- (void)checkBackground:(NSNotification *) note {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> checkBackground() :: 뷰 컨트롤러 백그라운드 상태] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
}




// MARK: - [버튼 클릭 이벤트]
-(IBAction)intentButtonClicked:(id)sender{
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> intentButtonClicked() :: 버튼 클릭 이벤트 발생] \n");
    printf("=============================== \n");
    printf("\n");
    
    dispatch_async(dispatch_get_main_queue(), ^{
        
        // [버튼 텍스트 명칭 변경 실시]
        [self.intentButton setTitle:@"투케이 버튼" forState:UIControlStateNormal];
        
    });
}


// -----------------------------------------
@end
// -----------------------------------------
 

[결과 출력]

 

 

반응형
Comments