2011-09-25 40 views
0

我有一個應用程序,我切換到使用presentModalViewController的TableView視圖。然而,使用TableView的視圖不在UITableViewController中,而是在普通的UIViewController中。我已經將UITextFields寫入UITableViewCells。我用這個動作救什麼用戶輸入:Xcode:爲什麼我的應用程序不保存UITextField?

- (IBAction)saveTextField:(id)sender { 

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[userDefaults setObject:TextField.text forKey:@"keyTextField"]; 
[userDefaults synchronize]; } 

我把這種方法與此代碼:

[TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit]; 

當我使用dismissModalViewController駁回視圖控制器,然後當我再次介紹它,我打電話使用此代碼的ViewDidLoad中的NSUserDefaults:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
TextField.text = [userDefaults objectForKey:@"keyTextField"]; 

問題是它不起作用。我無法弄清楚這個問題。任何幫助,將不勝感激。

感謝提前:)

+0

嘗試在您的'savetextfield'方法中放置斷點。檢查方法是否被調用。然後,在這裏發佈結果.. – sicKo

回答

1

要首先:感謝所有的你的精力和時間:)

原來,問題是不是與保存和載入它的代碼。問題是我只創建了一個UITextfield,然後將其放入每個UITableViewCell中,這就是問題所在。所以我爲每個UITableViewCells創建了單獨的UITextFields,並解決了這個問題:)

1

target必須與您的方法,這意味着如果你有- (void)saveTextField:(id)sender,那麼你的代碼添加目標必須

[TextField addTarget:self action:@selector(saveTextField:) forControlEvents:UIControlEventEditingDidEndOnExit]; 

檢查全光照NSLog如果你的行動正在運行。

+0

哦,其實它已經是...我只是發佈了錯誤的代碼...所以問題仍然存在:( –

1

而不是設置目標,你不能使用textFieldDidEndEditing:delegate方法進行保存嗎?

1

使用此代碼在視圖中加載 NSUserDefaults * user = [NSUserDefaults standardUserDefaults]; TextField.text = [user stringForKey:@「keyTextField」];

相關問題