我的应用中有三个视图。在第一个视图中,有三个button
和两个textfields
。当我按下任意button
时,tableview
所选项目的tableview
下拉列表将是按钮标题,而textfield
中的值将来自键盘。
当我跳到第二个视图来执行我的操作并返回到第一个视图时,我从tableview
选择的按钮标题不会出现在button
标题以及{{1}中}。
那么,如何设置textfields
标题和button
值。我不想将值从一个视图传递到第二个视图。
答案 0 :(得分:1)
使用NSUserdefaults
存储button & textfield
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Store the data
[[NSUserDefaults standardUserDefaults] setObject:yourTextfieldName.Text forKey:@"txtNmae"];
[[NSUserDefaults standardUserDefaults] setObject:cell.yourbuttonName.titleLabel.text forKey:@"buttonName"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
从NSuserdefaults获取数据
// Get the stored data before the view loads
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSString * txtName = [[NSUserDefaults standardUserDefaults] objectForKey:@"txtNmae"];
if(txtName)
{
yourtextField.text= txtName;
}
else
{
yourtextField.text= @"";
}
NSString * buttonName = [[NSUserDefaults standardUserDefaults] objectForKey:@"buttonName"];
if(buttonName)
{
[yourbuttonName setTitle: buttonName forState:UIControlStateNormal];
}
else
{
[yourbuttonName setTitle: @"as your Wish" forState:UIControlStateNormal];
}
// remove the userDefaultValue
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"buttonName"];
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"txtNmae"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
答案 1 :(得分:0)
您可以在NSUserDefaults中保存字符串。当调用didSelectRowAtIndexPath时,像这样保存按钮标题
[[NSUserDefaults standardUserDefaults]setObjectForKey:cell.titleLabel.text forKey:@"button_title"];
对textField
执行相同操作。
像这样设置按钮的标题
并且第一次检查NSUserDefaults是否包含数据,请应用此
if(![[NSUserDefaults standardUserDefaults]objectForKey:@"button_title"]){
[self.button setTitle:@"anyString" forState:UIControlStateNormal];
}
else
{
//set button from user defaults.
NSString *buttonTitle=[[NSUserDefaults standardUserDefaults]valueForKey:@"button_title"];
[self.button setTitle:buttonTitle forState:UIControlStateNormal];
}
并自行设置静态按钮标题。
答案 2 :(得分:0)
使用NSUserdefaults存储按钮标题&文本字段值为
NSString *firstName = [firstNameTextField text];
NSString *lastName = [lastNameTextField text];
// Store the data
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:firstName forKey:@"firstName"];
[defaults setObject:lastName forKey:@"lastname"];
&安培;从NSuserdefaults获取数据
// Get the stored data before the view loads
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *firstName = [defaults objectForKey:@"firstName"];
NSString *lastName = [defaults objectForKey:@"lastname"];
// Update the UI elements with the saved data
firstNameTextField.text = firstName;
lastNameTextField.text = lastName;
首先检查NSUserdefaults值是否为第一次为空。
答案 3 :(得分:0)
如果您想为临时目的存储标题,则无需使用NSUserDefaults
。 NSUserDefault用于存储值永久均值,直到用户删除应用程序。如果你想在用户杀死后重新打开应用程序,那么只使用NSUserDefaults。
您可以在AppDelegate中定义NSString并使用它,也可以在Global类中定义NSString。
AppDelegate 中的
@property(nonatomic,Strong)NSString *strTitle;
使用以下代码
存储此值AppDelegate *appDel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
appDel.strTitle = @"your title";
它将存储价值,直到用户杀死你的app.So根据你的需要使用。