2012-10-25 42 views
0

故事板傳遞數據 的ViewController SecondViewController從模態的視圖

我想使用十進制墊在TextFieldNumber輸入數字後的數據(aNumber的,可變的NSString)在從模態SecondViewController LabelNumber(在視圖控制器)通過。 我在SecondViewController中添加一個關閉按鈕(酒吧按鈕項)並連接到Segue(mySegue)。 在視圖控制器有一個圓矩形按鈕鏈接到SecondViewController 下面是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(強,非原子)IBO utlet 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 { 如果(文本框== self.TextFieldNumber) [self.TextFieldNumber resignFirstResponder]; 返回YES; }

回答

1

如果我理解正確的問題,你有兩個選擇:

  1. 分配FirstViewController作爲SecondViewController的代表,所以,當你解僱模式,你也可以撥打[self.delegate secondViewControllerWillDismiss :value]
  2. 使FirstViewController偵聽一個自定義通知,讓我們說「SecondViewControllerDismissNotification」,並使SecondViewController在關閉時發送此NSNotification。在這種情況下,您將不得不在NSDictionary中編寫參數,並將其與通知本身一起傳遞。

如果不清楚我可以寫一個小例子。

+0

是的,請高度讚賞一個例子:)也許解決方案1會更簡單?爲什麼我的代碼不適合我的情況? – Fabrizio