2

我目前使用下面的代碼來嘗試在3個視圖控制器之間傳遞文本在UITextField中查看相同的ViewController.h和ViewController.m文件:Xcode:故事板選項卡式應用程序傳回數據

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"NameOfSegue"]) { 
     ViewController *ibcVC = segue destinationViewController; 
     ibcVC.myTextField = self.myTextField; 
    } 
} 

我有3個視圖控制器按以下順序鏈接:ViewC1 => ViewC2 => ViewC3。

我的UITextField在ViewC2上。

當我點擊按鈕上ViewC2例如,在ViewC3推時,它把數據蠻好ViewC3。但是,假設我目前在ViewC2,我在UITextView中輸入了一些內容,然後點擊Xcode在使用選項卡式視圖應用程序時自動放置的導航上的後退按鈕,它將帶我到ViewC1只是如預期那樣好。但是,如果我按ViewC1上的按鈕,推入ViewC2,我的UITextField中鍵入的數據/文本已被擦除或重置爲空。

所以基本上在這裏是用輕微的數字視覺問題:

數據正確PUSHED EX。

ViewC1 => ViewC2 => ViewC3

數據被擦除;如果我們按下後退按鈕ON NAVIGATION EX。

ViewC1 < = ViewC2

+0

你用什麼方法回到viewc1? dismissmodalviewcontroller? – Pochi 2012-03-12 03:04:40

+0

你不必使用一個。當您使用選項卡式應用程序和鏈接視圖控制器與Push Segue時,Xcode會自動在導航中創建一個後退按鈕。我正在使用Storyboard作爲那個部分,所以一切都在IB中完成,並且在處理推送等時不需要編程。但是,如果我知道Xcode在處理這部分內容時可能會弄清楚。 – John 2012-03-12 03:07:55

回答

2

一種解決方案是你的字符串存儲在單。

SharedStrings.h =

#import <Foundation/Foundation.h> 

@interface SharedStrings : NSObject{ 
    NSString *string; 
} 

+(SharedStrings *)sharedString; 
-(void)setString:(NSString *)newString; 
-(NSString *)getString; 

@end 

SharedStrings.m =

#import "SharedStrings.h" 

static SharedStrings *sharedString; 

@implementation SharedStrings 

-(id)init{ 

    self = [super init]; 
    string = [NSString new]; 
    return self; 
} 

+(SharedStrings *)sharedString{ 
    if (!sharedString) { 
     sharedString = [[SharedStrings alloc] init]; 
    } 
    return sharedString; 
} 

-(void)setString:(NSString *)newString{ 
    string = newString; 
} 
-(NSString *)getString{ 
    return string; 
} 

@end 

然後,您可以把所有的意見獲取和設置必要的字符串,像這樣:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [myTextField setText:[[SharedStrings sharedString] getString]]; 
    [super viewWillAppear:animated]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField{ 

    if (textField == enterInfoTF) { 
     [[SharedStrings sharedString] setString:textField.text]; 
    } 
} 
+0

偉大的作品,excellant答案 – Grymjack 2013-01-02 07:26:36

相關問題