从模态视图传递数据

时间:2012-10-25 14:23:49

标签: objective-c

故事板 视图控制器 SecondViewController

我想在使用小数点填充TextFieldNumber中的数字后,从模态SecondViewController传递LabelNumber(在ViewController中)中的数据(aNumber,变量NSString)。 我在SecondViewController中添加了一个关闭按钮(条形按钮项)并连接到Segue(mySegue)。 在ViewController中,有一个链接到SecondViewController的Round Rect Button 这是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(强,非原子)IBOutlet UITextField * TextFieldNumber;        @end

 - (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;   }

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你有两个选择:

  1. 将FirstViewController指定为SecondViewController的委托,这样当您解除模态时,您也可以调用 [self.delegate secondViewControllerWillDismiss:value]
  2. 让FirstViewController监听自定义通知,让我们说“SecondViewControllerDismissNotification”,并让SecondViewController在解除时发送此NSNotification。在这种情况下,您必须在NSDictionary中编写参数,以便与通知本身一起传递。
  3. 如果不清楚我可以写一些小例子。

相关问题