1

ストーリーボード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を返します。}

4

1 に答える 1

1

私が質問を正しく理解していれば、次の 2 つの選択肢があります。

  1. FirstViewController を SecondViewController のデリゲートとして割り当てて、モーダルを閉じるときにも呼び出すことができるようにします[self.delegate secondViewControllerWillDismiss:value]
  2. FirstViewController にカスタム通知をリッスンさせます。たとえば、「SecondViewControllerDismissNotification」としましょう。これを閉じるNSNotificationときに SecondViewController にこれを送信させます。この場合NSDictionary、通知自体と一緒に渡されるパラメータを に書き込む必要があります。

明確でない場合は、小さな例を書くことができます。

于 2012-10-25T15:11:21.703 に答える