�ʂɃA�b�v�������̂��߂ɂȂɂ����ʂ�API��p�ӂ��Ă���Ă���킯�ł͂Ȃ��̂ŕ��ʂ�C����̃u���O���~���O�ł���Ă���悤�Ƀv���O�����������������̘b�B�ł�iOS�v���O���~���O�ł͉�ʂ̕\���̂��߂ɂ͂��̃R���g���[�����g���Ȃ����Ƃ��A���������ɂ͂��̃��\�b�h���I�[�o�[���C�h���Ȃ����Ƃ��A�F�X���ߖ�������̂ł����ƂȂɂ����܂肪����낤�Ǝv���Ă��܂�������ꂸ�Ɏ��������̂��낤�B
�Ƃ͌����A��������������iOS�I�ɂ͔���₷���Ƃ��f�o�b�O�����₷���Ƃ��F�X����킯�ŁA����͂�����܂Ƃ߂Ă݂��B
��ʊԂł̎n���Ƃ���
�E�e�q�W�̂���ꍇ
�E�e�q�W���Ȃ��ꍇ
�̓�ɑ�ʂł���B�悤�̓I�u�W�F�N�g�̊Ԃɒ��ڎQ�Ƃ����邩�ǂ����̈Ⴂ�Ȃ̂Őe�q�Ɍ���Ȃ��̂����ǁA����₷���܂Ƃ߂�Ə�L�ł������낤�B
(1)�e�q�W���Ȃ��ꍇ
(1-a)�O���[�o���ϐ�
(1-b)�V���O���g���I�u�W�F�N�g
(1-c)�A�v���P�[�V�����f���Q�[�g
(1-d)�O���t�@�C��
(1-e)���[�U�[�f�t�H���g
(2)�e�q�W������ꍇ
(2-a)��ʂ��J�����i�e����q�j
(2-b)��ʂ���鎞�i�q����e�j
(2-c)��ʂ��J�����i�e����q�jSegue
(2-d)��ʂ���鎞�i�q����e�jSegue
���ۂ̃T���v���R�[�h��������̂ŎQ�l�ɂ��Ăق����B
(1)�e�q�W���Ȃ��ꍇ
��ʂ��ւ��Ă��I�u�W�F�N�g�����݂��Ă���Ƃ��ɑ��������݂��Ă��邩�ǂ������킩��Ȃ��킯�ŁA���̏ꍇ�ɂ͒N���Ƀf�[�^�̒����������Ă��炤�����Ȃ��B
�T���v���̓���͎��̒ʂ�B��̃^�u������^�u�͓���UI�B��A���(FirstViewController)�ƐԂ�B���(SecondViewController)������A��ʊԂŒl�̌���������̂Œl�͈�v���Ă���B


�l���Z�b�g����^�C�~���O�͒l��UI����ύX���ꂽ���ł��������A��ʂ���悤�Ƃ��鎞�ł������B
�T���v���ł͒l���X�V���ꂽ���ɒl���������݁A��ʂ�\������Ƃ��ɕۑ����ꂽ�f�[�^��ǂݏo���Ă���B
(1-a)�O���[�o���ϐ�
��肩�����悭����Ȃ���O���[�o���ϐ����g�������B�O���[�o���ϐ����g���ƃf�o�b�O�ō����ƌ���ꂽ��������Ȃ����A�����Ŗ����Ă���l�͂܂��ŏ��̃T���v���v���O�����������Ă���i�K���낤����A�C�ɂ��邱�Ƃ͂Ȃ��B�����[�X����A�v������鍠�ɂ͑��̕��@���g����悤�ɂȂ��Ă���͂��B����ȂƂ���Ŗ����Ă���͎̂��Ԃ̖��ʁB�������ƃO���[�o���ϐ����g���Ēl���n�������Ƒ��̉��y�̖炵���Ƃ��J�����̎g�����Ƃ��ʔ������Ƃ������Ă݂悤�B
�T���v���v���O�����ł͈ȉ����B�X�C�b�`�̒l��A�AB�Ԃł���肷��B
�܂��O���[�o���ϐ��̒�`���K�v�BA���F
BOOL firstValue = NO;
B���ł͎Q�Ƃ̐錾�݂̂��s���B
extern BOOL firstValue;
����Ȍ�́AAB�ŃR�[�h�̓��e�͂܂����������B�l��ǂݏo���ăZ�b�g����B
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
globalView.on = firstValue;
}
UI�ŕύX�����l���Z�b�g����B
-(void)switchDidChanged:(id)sender
{
firstValue = globalView.on;
}
�������AObjective-C�N���X�̃I�u�W�F�N�g���g���ꍇ�ɂ�retain����ӔC���B���ɂȂ�̂Œ��ӂ��K�v���B
(1-b)�V���O���g���I�u�W�F�N�g
�I�u�W�F�N�g�w���ł悭�g���f�[�^�̕ێ����ɃV���O���g���I�u�W�F�N�g������B�A�v���P�[�V�����S�̂���A�N�Z�X�\�Ńv���O�������s���ɂЂƂ����Ȃ��I�u�W�F�N�g���B�O���[�o���ϐ��̃I�u�W�F�N�g�łƎv�������B�P�Ƀf�[�^�̎n���Ɏg���Ƃ����̂͂��܂�悢�g�����Ƃ͌����Ȃ����O���[�o���ϐ���肩�͂����B
�T���v���v���O�����͏ȗ�����B�V���O���g��+Objective-C�ŃO�O���Ă���B
(1-c)�A�v���P�[�V�����f���Q�[�g
�V���O���g���̃N���X���`����̂���ς����āH���͗\�ߗe�Ղ��ꂽ�V���O���g���I�u�W�F�N�g����쐬�ς݂��B���ꂪ�A�v���P�[�V�����f���Q�[�g�B����Ӗ��S�Ă̐e���Ƃ�������B������S�Ẳ�ʃR���g���[�������̃A�v���P�[�V�����f���Q�[�g�ւ̎Q�Ƃ��ŏ����玝���Ă��āA�f�[�^�͂��̐l�ɗa�����Ă��Ă��炤�̂������B�����ŃI�u�W�F�N�g�������̂������琶�����ɎQ�Ƃ����Axib�ō�����̂Ȃ�xib�ŃA�E�g���b�g��ڑ����Ă����B
���̂������킩��Ȃ��H���v�A�A�v���P�[�V�����I�u�W�F�N�g�̓O���[�o���ϐ��ŃA�N�Z�X�\�ȂB
�T���v���v���O�����ł͈ȉ����B�e�L�X�g�t�B�[���h�ɓ��͂����������A�AB�Ԃł���肷��B�v���O�����̓��e��A�AB�܂����������B
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
AppDelegate *appDelegate;
appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
singleView.text = appDelegate.singleString;
}
UI�Ńe�L�X�g���ύX���ꂽ���F
-(void)textFieldDidEndEditing:(UITextField *)textField
{
AppDelegate *appDelegate;
appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
appDelegate.singleString = singleView.text;
}
(1-d)�O���t�@�C��
���A�Ńt�@�C���ɏ����o���ĉ��B�œǂݏo���f�[�^�̎n���͉\���B�A�v���P�[�V�������I�����Ă��f�[�^���c���Ă���̂Ŏ���܂��g����Ƃ�������p�t���B�܂��ł����\��ς����獡�͂܂�����Ȃ��Ƃ������Ȃ���ˁB�����������ʓ|���B����������͏ȗ�����B�ł����͂�����A�v���P�[�V�����O�̂ǂ����ɏ������ނƂ�����@�����邱�Ƃ��o���Ă����Ă���BiCloud���Ă��������͂Ȏ�i�����邪����͂܂��ʂ̘b�B
(1-e)���[�U�[�f�t�H���g
���̊O���t�@�C���ɏ����o���Ă����̂��ȒP�Ɏg����̂����̃��[�U�[�f�t�H���g���B�����ݒ�Ȃǂ��������ޏꏊ�����A������Ƃ����Ȃ��ʊԂ̃f�[�^�̎n���Ɏg���Ă��{���Ȃ����낤�B�������t�@�C���ɕۑ�����iTunes�Ɠ��������Ƃ��ɂ̓o�b�N�A�b�v����邩��A1�N��ɍċN�����Ă��f�[�^�����o����B
�T���v���v���O�����ł͈ȉ����B�Z�O�����g�̒l��A�AB�Ԃł���肷��B�v���O�����̓��e��A�AB�܂����������B
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ( [[userDefaults valueForKey:@"selectedSegmentIndex"] intValue] == 0 ) {
defaultsView.selectedSegmentIndex = 0;
} else {
defaultsView.selectedSegmentIndex = 1;
}
}
UI�Œl���ύX���ꂽ���F
-(void)segmenetDidChanged:(id)sender
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setValue:[NSNumber numberWithInt:defaultsView.selectedSegmentIndex]
forKey:@"selectedSegmentIndex"];
[userDefaults synchronize];
}
(2)�e�q�W������ꍇ
�e�q�W�������Ă���L�̎�@���g���Ă������e����q�A�q����e�ł���Β��ڂ��̃I�u�W�F�N�g��m���Ă���̂�����A�I�u�W�F�N�g�Ƀ��b�Z�[�W�𑗂��ăf�[�^�������t���Ă��܂������̂��B���o���ꍇ�ɂ���Ƃ����v�����\�b�h���Ăяo���Ă������B
���ڃf�[�^��n���i���炤�j���\�b�h����������킴�킴�������邱�Ƃ��Ȃ���ˁB���A���Ăяo���������킩��Ȃ��ꍇ�̂��߂ɁA�������Ă݂��B

(2-a)��ʂ��J�����i�e����q�j
�e��ʂ���q��ʂɉ�ʂ��J�ڂ��鎞�A�q��ʂ̃R���g���[����e��ʂ͎����Ă���͂����B�����炻���Őe����q��ʃR���g���[���Ƀf�[�^��n�����\�b�h��ǂݏo���B
�T���v���v���O�����ł͈ȉ����B�e�̓��̓f�[�^���q���Ƀe�L�X�g�Ƃ��ēn���Ă���B
- (IBAction)showChildAction:(id)sender {
ChildViewController *aViewController = [[ChildViewController alloc]
initWithNibName:@"ChildViewController" bundle:nil];
NSString *aString = ...;
// �q�֒l���Z�b�g����B
aViewController.text = aString;
aViewController.delegate = (id<ChildViewDelegate>)self;
// �q�����邽�߂̏���
[self presentModalViewController:aViewController
animated:YES];
}
(2-b)��ʂ���鎞�i�q����e�j
�q��ʂŃf�[�^��ύX���Đe�ɒl��n���ɂ͕���Ƃ��������B���̎��A�q��ʃR���g���[�����e�ւ̎Q�Ƃ��C���X�^���X�ϐ��Ƃ��Ď����Ă��Đe�̃��\�b�h�ڌĂяo���悤�ɂ���̂��悢�B�ł��A�e���q���̂��Ƃ�m���Ă��Ă������ǁA�q���͂��܂�e�̂��Ƃ�m���Ă���̂͗ǂ��Ȃ����ƂƂ���Ă���B�����ĒN���ɗ{�q�ɏo���ꂽ�Ƃ��Ɏ��̐e�͂��������������������ƌ����ƈ�Ă̐e�͔߂��ނ���H�܂��Ⴆ�������������A�e�̂��Ƃ͒m��Ȃ����������B���Ⴀ�ǂ�����Đe�̃��\�b�h���Ăяo���́H���ꂪ�v���g�R���ƃf���Q�[�g���B
�q���f�[�^��ύX�������Ƃ�m�点�郁�\�b�h���q�̕��Ő錾���Ă����B�e�͂��̃��\�b�h���������Ă��邱�Ƃ�����ۏ�������B���ꂪ�v���g�R���B�����Ďq���ɂ͐e���N�������肵�Ȃ��ŃZ�b�g���Ă����B���ꂪ�f���Q�[�g�i�܂����O�͉��ł��������A������ƈӖ����Ⴄ�C�����邪�f���Q�[�g���Ă��Ă���Ⴊ�������炻��ł������낤�B�^�[�Q�b�g�̂ق����K���Ȃ̂�������Ȃ��j�B
�T���v���v���O�����ł͈ȉ����B�q��ʂœ��͂����e�L�X�g��e��ʂ̃e�L�X�g�r���[�ɃZ�b�g����B
�܂�ChildViewController.h�B
@class ChildViewController;
@protocol ChildViewDelegate %lt;NSObject>
- (void)childViewDidChanged:(ChildViewController*)viewController;
@end
@interface ChildViewController : UIViewController
@property(strong, nonatomic) NSString *text;
@property(weak, nonatomic) id<ChildViewDelegate> delegate;
@end
�q��ʂ����Ƃ��ɐe�i���f���Q�[�g�j���Ăяo���B
- (IBAction)okAction:(id)sender {
[self.textView resignFirstResponder];
self.text = self.textView.text;
if ( [self.delegate respondsToSelector:@selector(childViewDidChanged:)] ) {
[self.delegate childViewDidChanged:self];
}
[self dismissModalViewControllerAnimated:YES];
}
�e��ʂł͂�������B
- (void)childViewDidChanged:(ChildViewController*)viewController
{
resultsView.text = viewController.text;
}
(2-c)��ʂ��J�����i�e����q�jSegue
Storyboard���g���Ă���ꍇ�ɂ͏����ꏊ��������ƈႤ�B�q��ʂ��������J�����肷��̂̓t���[�����[�N���ʓ|�����Ă���Ă��Ď����ł͏����Ȃ�����B
�T���v���v���W�F�N�g�͕ς����SegueSample�̂ق��BViewController�ł̓X���C�_�[�Œl��ύX���āANextViewController�̑��ł̓X�e�b�p�[�Œl��ύX����B�����l���n���̂ŏ�ɗ����̉�ʂ̒l�͓����ɂȂ�B


�T���v���v���O�����ł͈ȉ����B
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ( [[segue identifier] isEqualToString:@"Push"] ) {
NextViewController *nextViewController = [segue destinationViewController];
nextViewController.value = self.value;
nextViewController.delegate = (id<NextViewDelegate>)self;
}
}
(2-d)��ʂ���鎞�i�q����e�jSegue
�T���v���v���O�����ł͈ȉ����B
�q��ʂ����Ƃ��ɐe�ɒl��n���B
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ( [self.delegate respondsToSelector:@selector(nextViewValueDidChanged:)] ) {
[self.delegate nextViewValueDidChanged:self.value];
}
}
�������e�̃��\�b�h�B
-(void)nextViewValueDidChanged:(int32_t)value
{
self.sliderView.value = value;
[self sliderValueDidChnaged:self.sliderView];
}
--
������ɂ��������@�͂�����ł����邾�낤�B�����S�҂����ʂɍ��Ȃ炱�̈ʂ̒�����g���̂��������낤�B
�T���v����Version 4.3.1 (4E1019)��ARC����ō쐬�B
ValueSample.zip
Storyboard���g�����ꍇ�B
SegueSample.zip
�ڂ���ł��I�{���ɂ��肪�Ƃ��������܂��B
����₳���Ē��������̂ł����A������̋L���̂������ŁA�e����q�ւ̒l�̈����n���̕��@�͕��������̂ł����A�e���瑷�E������e�ւ̒l�̂����͂ǂ̂悤�ɂ�������̂ł��傤���B
��낵�����肢���܂��B
a)��̉�ʊԂɐe�q�W���Ȃ��ꍇ�̂�肩�����g���B
b)�e����q�A�q���瑷�ƃ����[�`���Ńf�[�^���n���B
c)�q����e�ւ̃|�C���^������A�q�����e�ւ̃|�C���^��n��������e�q�˂�B
�̂����ꂩ���Ǝv���܂��B
�q�ł͂��̃f�[�^���܂������g��Ȃ��̂ł����a�������ł����A��ʂɐe�q���̊W������̂Ȃ�f�[�^�ɂ��Ȃ�炩�̊W�����肻���Ȃ̂ŁA�q���o�R������b�������Ǝv���܂��B
c�͖ʓ|�Ȃ̂ō���͐������ȗ����܂��B
��������Ă݂܂��I