ストーリーボードViewControllerSecondViewController
10進数のパッドを使用してTextFieldNumberに数値を入力した後、モーダルSecondViewControllerからLabelNumber(ViewController内)のデータ(aNumber、変数NSString)を渡したいのですが。SecondViewControllerに閉じるボタン(バーボタンアイテム)を追加し、Segue(mySegue)に接続します。ViewControllerには、SecondViewControllerにリンクされたRoundRectボタンがあります。ViewController.mのコードは次のとおりです。
#import "ViewController.h"
#import "SecondViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *LabelNumber;
@property (weak, nonatomic) SecondViewController * SecondScreen;
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString: @"mySegue"]){
self.SecondScreen = segue.destinationViewController;
self.SecondScreen.aNumber = self.LabelNumber.text
}
- (IBAction)close:(UIStoryboardSegue*)sender {
if([sender.identifier isEqualToString:@"mySegue"] ){
self.LabelNumber.text = self.SecondViewController.aNumber;
}
SecondViewController.hで私はこのコードを持っています:
#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController
@property (strong, nonatomic) NSString* aNumber;
@end
SecondViewController.mで私はこのコードを持っています:
#import "ViewController.h" #import "SecondViewController.h" @interface SecondViewController () <UITextFieldDelegate>
@property(strong、nonatomic)IBOutlet UITextField * TextFieldNumber; @終わり
- (void)viewDidLoad
{
[super viewDidLoad];
[self.TextFieldNumber becomeFirstResponder];
self.TextFieldNumber.delegate = self;
self.TextFieldNumber.text = self.aNumber;
}
- (IBAction)getValue:(UITextField *)sender {
self.aNumber = self.TextFieldNumber.text ;
[self.TextFieldNumber resignFirstResponder];
}
最後に、SecondViewController.mに常に追加しました。キーボードを閉じたくないが、常にオンのままにしておき、閉じるボタンでTextNumber値(aNumber)をキャッチしたい場合でも(モーダルアンワインド) )。
-(BOOL)textFieldShouldReturn:(UITextField *)textField {if(textField == self.TextFieldNumber)[self.TextFieldNumber resignFirstResponder]; YESを返します。}