레이블이 viewcontroller인 게시물을 표시합니다. 모든 게시물 표시
레이블이 viewcontroller인 게시물을 표시합니다. 모든 게시물 표시

2015년 8월 3일 월요일

[ios] viewcontroller 간의 데이터(값) 전달 (delegate 이용)

FirstViewController SecondViewController 두개의 뷰가 존재하며
FirstViewController에 SecondViewController의 데이터를 전달하고자 한다.

SecondViewController : 데이터를 전달
FirstViewController : 데이터를 받음

[SecondViewController.h]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 프로토콜 선언
@protocol SecondViewDelegate <NSObject>;
@required
-(void) getData:(int)data;
@end
// 델리게이트 선언
@interface SecondViewController : UIViewController
{
    id < SecondViewDelegate > delegate;
}
@property (nonatomic,assign) id< SecondViewDelegate > delegate;
@end
cs

[SecondViewController.m]
1
2
// 값을 보냄
[self.delegate getSelectData:10];
cs


[FirstViewController.h]
1
2
3
4
#import "SecondViewController.h"
@interface FirstViewController : UIViewController< SecondViewDelegate > 
cs



[FirstViewController.m]
1
2
3
4
5
6
7
8
9
SecondViewController *viewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
// 꼭 델리게이트 지정해주어야 함
viewController.delegate = self;
 
// 델리게이터 함수 구현 값을 받음
-(void) getData:(int)data
{
    NSLog(@"data = %d", data);
}
cs









2015년 6월 23일 화요일

[ios] 스토리보드(storyboard) 화면 이동하기, segues 구성하기

segues : 스토리보드의 A화면에서 B화면으로 전화하는 것.
A화면에서 버튼을 누르면 B화면으로 전환되는 것을 해보겠다.


Single VIew Application 프로젝트 생성 > 그림과 같이 스토리보드가 자동 생성 된 것 확인.















A화면 View를 클릭 후 버튼(button)을 드래그 하여 추가 > View Controller오브젝트(B화면)도 드래그하여 추가하면 아래 그림과 같이 두개의 화면이 나타난다.















A화면의 버튼을 눌렀을 때 B화면으로 이동하도록 하기 위해서
A화면의 버튼을 선택 > control키를 누른상태에서 버튼을 B화면으로 드래그 > 다음과 같은 메뉴가 출력 > modal선택




아래의 그림과 같이 화살표가 생성되었으면 제대로 한 것이다.

이대로 실행한다면 문제가 발생한다. 왜냐하면 B화면의 뷰컨트롤러가 없기 때문이다.
file > cocoa touch > UIViewController > Next 생성.

스토리보드에서 아까 생성한 B컨트롤러 선택 > class에 방금 생성한 뷰컨트롤러 지정.

실행해보자.