0

我有一個modalviewcontroller並有兩個按鈕:取消和保存。有一個可編輯的UITextField。 每當我點擊保存按鈕,我會保存它,但文本不會保存,因爲當我點擊按鈕打開modalviewcontroller,文本消失。不知道我的代碼有什麼問題。 這裏是我的代碼:設置Textfield數據點擊保存按鈕在iphone

- (void)viewWillAppear:(BOOL)animated { 

self.cancel = self.navigationItem.leftBarButtonItem; 
self.save = self.navigationItem.rightBarButtonItem; 

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancelAction)]; 
self.navigationItem.leftBarButtonItem = cancelButton; 
[cancelButton release]; 

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction)]; 
self.navigationItem.rightBarButtonItem = saveButton; 
[saveButton release]; 

[super viewWillAppear:animated]; 
} 

-(IBAction) cancelAction{ 
[[self parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

    -(IBAction) saveAction{ 
NSString *text = [textFieldBeingEdited text]; 

[textFieldBeingEdited setText:text]; 
[self setDescription:text]; 


[[self parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

我不知道如果我要使用下面的代碼保存在文本框的文本:

- (void)textFieldDidEndEditing:(UITextField *)textField 
    { 
[self dismissModalViewControllerAnimated:YES]; 
    } 
+0

,你在哪裏申報和init textFieldBeingEdited –

+0

在viewDidLoad方法。 – lifemoveson

+0

你爲什麼要做'[textFieldBeingEdited setText:text];'? – jtbandes

回答

0

我沒有在你的代碼中看到的任何地方,你出現視圖時將文本設置爲UITextField。你可以添加一些代碼到你viewWillAppear方法來設置文本視圖出現時,如:(它看起來像你存儲在描述變量NSString

[textField setText:[self description]]; 

而且,如果這是某種可以被認爲是用戶默認的字符串,你可以在那裏存儲字符串。我以前使用過它,它很好地填充了我的UITextField

代碼示例:

-(void)viewDidLoad 
{ 
stringValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"string"]; 
[textField setText:stringValue]; 
} 

-(IBAction)saveAction 
{ 
stringValue = [textField text]; 
[[NSUserDefaults standardUserDefaults] setObject:stringValue forKey:@"string"]; 
}